Merge Two Sorted Lists
和合并数组类似。
ListNode *mergeList(ListNode *l1, ListNode *l2) { if (l1 == nullptr)return l2; if (l2 == nullptr)return l1; ListNode dummy(-1); ListNode *p = &dummy; for (; l1 != nullptr&&l2 != nullptr; p = p->next) { if (l1->val > l2->val) { p->next = l2; l2 = l2->next; } else { p->next = l1; l1 = l1->next; } } p->next = l1 != nullptr ? l1 : l2; return dummy.next; }
对于Merge k Sorted Lists同理,可以多次调用Merge two Sorted Lists