题目描述:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]
基础知识:
nullptr 空指针
prev->next=list1==nullptr?list2:list1; 若list1=nullptr,则prev->next==list2,若判断为假,则prev->next==list1
ListNode*preHead=new ListNode(-1); 设定哑节点位置在头节点之前
prehead->val 第一个元素的值,可认为当前节点
具体代码:
class Solution{
public:
ListNode*mergeTwoLists(ListNode*list1,ListNode*list2){
ListNode*prehead=new ListNode(-1);
ListNode*pre=prehead;
while(list1!==nullptr&&list2!==nullptr){
if(list1->val<list2->val){
pre->next=list1->val;
list1==list1->next;
}
else{
pre->next=list2->val;
list2==list2->next;
}
pre=pre->next;//指针指向下一个
}
pre->next=list1==nullptr?list2:list1;
return prehead->next;//去除第一个哑节点
}
};