Why heappush is taking 3 parameters arr[i].data, i and arr[i]. Why is it taking i as parameter It usually takes one one parameter It is the code for merging k sorted link list
def mergeKLists(arr,K):
# code here
# return head of merged list
heap = []
head = tail = Node(0)
for i in range(K):
heapq.heappush(heap,(arr[i].data,i,arr[i]))
while heap:
node = heapq.heappop(heap)
node = node[2]
tail.next = node
tail = tail.next
if node.next:
i += 1
heapq.heappush(heap,(node.next.data,i,node.next))
return head.next