思路分析:
(1)如果其中一个链表为空了,就直接返回另一个非空链表
(2)两个链表走从第一个节点开始比较,如果第一个链表比第二个链表的数据小,那么就把第一个链表接收递归的值,并且递归时把第一个链表往后移一位。最后返回第一个链表的地址。反之。
代码实现:
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if (l1 == nullptr)
return l2;
else if (l2 == nullptr)
return l1;
else if (l1->val < l2->val)
{
l1->next = mergeTwoLists(l1->next, l2);
return l1;
}
else
{ l2->next = mergeTwoLists(l1, l2->next);
return l2;
}
}
};