题解 | #合并两个排序的链表#

合并两个排序的链表

https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337

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头节点。




#算法题#
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-18 22:30
点赞 评论 收藏
分享
点赞 评论 收藏
分享
dao_yi:投了1000个左右,回消息的很少,要简历然后说过几天联系的都没有消息了,约面试的基本都是3000左右,足够在当地生活,最后去了一个武汉的3000,干了两天回来考研了,感觉这个行业加班是常态,看能不能考研上岸找个国企,或者大厂。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务