23. Merge k Sorted Lists - Complete Heap Explanation Hard
Python Code
1 class Solution:
2 def mergeKLists(self, lists):
3 import heapq
4 heap = []
5
6 # Initialize heap
7 for i, head in enumerate(lists):
8 if head:
9 heapq.heappush(heap, (head.val, i, head))
10
11 dummy = ListNode(0)
12 curr = dummy
13
14 # Extract min, add next
15 while heap:
16 val, idx, node = heapq.heappop(heap)
17 curr.next = node
18 curr = curr.next
19
20 if node.next:
21 heapq.heappush(heap, (node.next.val, idx, node.next))
22
23 return dummy.next
Visualization
0 / 0
Heap Internals
Step Log