1、题目描述
示例1
输入:l1 = [1,2,4], l2 = [1,3,4]
输出:[1,1,2,3,4,4]
示例 2:
输入:l1 = [], l2 = []
输出:[]
示例 3:
输入:l1 = [], l2 = [0]
输出:[0]
2、思路
class Solution {
public:
ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {
if(!list1 || !list2){
return list1 ? list1:list2 ;
}
//保证 传入参数 list1 的头结点 更小
if(list1 -> val > list2 -> val){
return mergeTwoLists(list2, list1);
}
else{
ListNode * list1_head = list1;
ListNode * list1_prev = nullptr;
while(list1 && list2){
// 将 list1_prev指向 list2
if(list1 -> val > list2 -> val){
list1_prev -> next = list2;
list2 = list1;
list1 = list1_prev -> next;
}
// list1向右遍历
else{
list1_prev = list1;
list1 = list1 -> next;
}
}
if(!list1){
list1_prev -> next = list2;
}
return list1_head;
}
}
};
整理不易 你的点赞、关注是对我莫大的鼓励