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
Step Log