Merge Two Sorted Lists
easy 原题链接:https://leetcode.com/problems/merge-two-sorted-lists/
Merge Two Sorted Lists
描述
Merge two sorted linked lists and return it as a new sorted list. The new list should be made by splicing together the nodes of the first two lists.
例子
Input: 1->2->4, 1->3->4
Output: 1->1->2->3->4->4
解法一
class Solution {
public:
ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
ListNode dummy(0);
ListNode *tail = &dummy;
while(l1 && l2) {
ListNode *& node = l1->val < l2->val ? l1 : l2;
tail = tail->next = node;
node = node->next;
}
tail->next = l1 ? l1 : l2;
return dummy.next;
}
};
解法二
递归
class Solution {
public:
ListNode* mergeTwoLists(ListNode* a, ListNode* b) {
if (!a || b && a->val > b->val) swap(a, b);
if (a) a->next = mergeTwoLists(a->next, b);
return a;
}
};
最后更新于
这有帮助吗?