示例 1:
输入:l1 = [1,2,4], l2 = [1,3,4] 输出:[1,1,2,3,4,4]
示例 2:
输入:l1 = [], l2 = [] 输出:[]
示例 3:
输入:l1 = [], l2 = [0] 输出:[0]
分析:
将2个升序的列表合并为一个升序的列表
根据题意:如果list1为空返回list2,list2为空返回list1
如果list1中的val < list2中的val,使用递归对列表进行重新排序
同理list1中的val > list2中的val,使用递归对列表进行重新排序
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {
// 进行判空
if(list1==NULL) return list2;
if(list2==NULL) return list1;
// 如果list1的val < list2的val 进行递归对原先进行重新排列
if(list1->val < list2->val){
list1->next=mergeTwoLists(list1->next,list2);
return list1;
}else{
list2->next=mergeTwoLists(list2->next,list1);
return list2;
}
}