'''
class Solution:
def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:
heap = []
head = dummy = ListNode(float('inf'), None)
for i in range(len(lists)):
if lists[i]:
heap.append([lists[i].val, i])
heapq.heapify(heap)
while heap:
val, index = heapq.heappop(heap)
next_node = ListNode(val)
dummy.next = next_node
dummy = dummy.next
lists[index] = lists[index].next
if lists[index]:
heapq.heappush(heap, [lists[index].val, index])
return head.next
'''