LeetCode 23 Merge K Sorted Lists - Implementation

The approach

Min-heap with k elements. Pop smallest, push its next.

function mergeKLists(lists): heap = MinHeap() for list in lists: if list: heap.push(list) dummy = ListNode(0) curr = dummy while heap: node = heap.pop() curr.next = node curr = curr.next if node.next: heap.push(node.next) return dummy.next

O(nlogk)O(n \log k) time, O(k)O(k) space.