关注
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
// 创建一个虚拟头节点(dummy node),简化边界条件处理
// 虚拟节点的next将指向合并后的链表头
ListNode* dum = new ListNode(0);
// cur指针用于构建新链表,初始指向虚拟节点
ListNode* cur = dum;
// 同时遍历两个链表,直到其中一个被完全遍历
while (list1 != nullptr && list2 != nullptr) {
// 比较当前两个节点的值,将较小者接入新链表
if (list1->val < list2->val) {
cur->next = list1; // 将list1节点接入
list1 = list1->next; // list1指针后移
}
else {
cur->next = list2; // 将list2节点接入
list2 = list2->next; // list2指针后移
}
cur = cur->next; // 新链表指针后移
}
// 将未遍历完的链表剩余部分直接接入新链表
// (三目运算符:如果list1不为空则接list1,否则接list2)
cur->next = list1 != nullptr ? list1 : list2;
// 返回合并后的链表头(跳过虚拟节点)
return dum->next;
}
};
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
7127次浏览 94人参与
# 担心入职之后被发现很菜怎么办 #
265042次浏览 1122人参与
# 秋招被挂春招仍然能投的公司 #
5363次浏览 88人参与
# mt对你说过最有启发的一句话 #
31257次浏览 384人参与
# 什么是优秀的实习经历 #
7197次浏览 194人参与
# 考研失败就一定是坏事吗? #
199499次浏览 1361人参与
# 为了找工作你花了哪些钱? #
74634次浏览 359人参与
# 摸鱼被leader发现了怎么办 #
97829次浏览 625人参与
# 秋招特别不鸣谢 #
14253次浏览 172人参与
# 选实习,你更看重哪方面? #
12337次浏览 205人参与
# 第一次面试 #
1035701次浏览 13682人参与
# 今年秋招你收到了多少封邮件? #
17012次浏览 217人参与
# 作业帮求职进展汇总 #
81675次浏览 530人参与
# 你今年的保底offer是哪家 #
154688次浏览 671人参与
# 携程求职进展汇总 #
838527次浏览 5508人参与
# 听到哪句话就代表面试稳了or挂了? #
237276次浏览 1677人参与
# 毕业论文进行时 #
20616次浏览 129人参与
# 工作中遇到的歹人 #
25459次浏览 300人参与
# 找工作有哪些冷知识 #
204985次浏览 2603人参与
# 机械/制造每日一题 #
80099次浏览 1409人参与