AcWing 36. 合并两个排序的链表
原题链接
简单
作者:
米多奇香米饼
,
2023-01-12 21:36:23
,
所有人可见
,
阅读 132
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* merge(ListNode* l1, ListNode* l2) {
ListNode* dummy=new ListNode(-1);//构造虚拟头结点
ListNode* cur=dummy;//构造一个指针指向虚拟头结点
while(l1&&l2){
if(l1->val<=l2->val){
cur->next=l1;
cur=l1;//将cur和l1指向同一个节点
l1=l1->next;
}else{
cur->next=l2;
cur=l2;//将cur和l2指向同一个节点
l2=l2->next;
}
}
cur->next=(l1?l1:l2);//将最后仍有数据的链表接在后面
return dummy->next;
}
};