题目:合并两个有序链表

使用的是递归的方法

首先判断是否有链表为空,如果是,则直接返回另一个链表

之后对list1和list2的值进行判断,更小者的下一个节点将调用原函数继续递归(比如情况一,list1的值更小,就让list1的next节点继续调用函数,将list1剩下的节点继续与list2比较)

 1ListNode* mergeTwoLists(ListNode* list1, ListNode* list2)
 2    {
 3        if(list1 == nullptr) return list2;
 4        if(list2 == nullptr) return list1;
 5        if(list1->val < list2->val)
 6        {
 7            list1->next = mergeTwoLists(list1->next, list2);
 8            return list1;
 9        }
10        else
11        {
12            list2->next = mergeTwoLists(list1, list2->next);
13            return list2;
14        }
15    }