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

合并两个排序的链表

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




#算法题#
全部评论

相关推荐

05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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