题目链接:21. 合并两个有序链表
题意:
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
解题思路:
通过递归查找两个列表的下一个元素应该是那个列表的节点
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
if(l1 == nullptr) { // 如果l1是空,那么返回l2
return l2;
}
if(l2 == nullptr) { // 如果l2是空,那么返回l1
return l1;
} else if (l1->val < l2->val) { // 如果l1的val小于 l2 的val
l1->next = mergeTwoLists(l1->next, l2); // 那么l1->next 是l1->next 和l2 的较小值
return l1;
} else {
l2->next = mergeTwoLists(l1, l2->next); // 否则是l2->next 是l1 和l2->next 的较小值
return l2;
}
}
};