Merge K Sorted Lists
Merge Two Sorted Lists (LC.21)
Example
Input: L1 = 1->3->8->11->15->null, L2 = 2->null
Return: 1->2->3->8->11->15->nullAnalysis
Code
public ListNode mergeTwoSortedLists(ListNode l1, ListNode l2) {
// modifying the head so dummy node
ListNode dummy = new ListNode(0);
ListNode t1 = l1;
ListNode t2 = l2;
ListNode current = dummy;
// merge what they have first
while (t1 != null && t2 != null) {
if (t1.val < t2.val) {
current.next = t1;
current = current.next;
t1 = t1.next;
} else {
current.next = t2;
current = current.next;
t2 = t2.next;
}
}
// splice the rest
if (t1 != null) current.next = t1;
if (t2 != null) current.next = t2;
// return new head
return dummy.next;
}Merge K Sorted Lists (LC.23)
Example
Analysis
Brute Force Reduction
Divide and Conquer
Bottom Up Merge
Priority Queue Search
Reading
Last updated