关注
/**
* 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;
}
};
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享

点赞 评论 收藏
分享

点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
14876次浏览 293人参与
# 我的工作日记 #
92382次浏览 1235人参与
# 毕业季,给职场新人一些建议 #
13818次浏览 243人参与
# 选offer应该考虑哪些因素 #
11733次浏览 174人参与
# 我的实习日记 #
2420820次浏览 25290人参与
# 辞职之后最想做的一件事 #
8778次浏览 130人参与
# 你想留在一线还是回老家? #
36733次浏览 442人参与
# 你小时候最想从事什么职业 #
90521次浏览 1694人参与
# 为了秋招你都做了哪些准备? #
10131次浏览 144人参与
# 你们公司哪个部门最累? #
14762次浏览 124人参与
# 你怀疑过自己的专业选择吗? #
16987次浏览 201人参与
# 产品实习,你更倾向大公司or小公司 #
146351次浏览 1909人参与
# 工作后会跟朋友渐行渐远吗 #
20819次浏览 162人参与
# 第一份工作应该只看薪资吗 #
137488次浏览 1448人参与
# 大学最后一个寒假,我想…… #
35683次浏览 455人参与
# 工作中的卑微时刻 #
8904次浏览 54人参与
# 秋招想进国企该如何准备 #
56904次浏览 368人参与
# 薪资爆料 #
102388次浏览 1040人参与
# 金三银四,你有感觉到吗 #
582378次浏览 5868人参与
# 比亚迪求职进展汇总 #
703719次浏览 3062人参与