2022.08.05算法第4道合并两个排序的链表
这道理思路不难,就是需要依次比较两个链表中首节点的大小,主要在于怎么将新的链表构造出来。
首先需要两个指向当前节点的变量cur1和cur2,指向新链表前一个结点的pre,用于存储下一个节点。
ListNode* dummy=new ListNode(-1);
ListNode* cur1=pHead1;
ListNode* cur2=pHead2;
ListNode* pre=dummy;
之后判断两个当前节点的大小
将小的那个节点作为pre的next节点,这里最重要的就是pre的指向,以及各个变量的更新。
循环条件为两个链表有一个为空
if(cur1->val<=cur2->val)
{
    pre->next=cur1;
    cur1=cur1->next;
}else
{
    pre->next=cur2;
    cur2=cur2->next;
}
pre=pre->next;
同时,比较完毕之后,可能会有剩余节点存在,需要判断非空的那个链表,将剩余的节点添加到pre的next上。
if(cur1)
    pre->next=cur1;
else
    pre->next=cur2;
最终返回dummy->next头节点。