Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity
import heapq
class Solution(object):
def merge_klists(self, lists):
def travel(head):
while head is not None:
yield head.val, head
head = head.next
dummy = cursor = ListNode(None)
for _, node in heapq.merge(*map(travel, lists)):
cursor.next = node
cursor = cursor.next
return dummy.next