title: "0023: Merge k Sorted Lists"
import heapq
class CustomNode:
def __init__(self, node):
self.node = node
def __lt__(self, other):
return self.node.val < other.node.val
class Solution:
def mergeKLists(self, lists):
hq = []
for l in lists:
if not l: continue
heapq.heappush(hq, CustomNode(l))
dummy = temp = ListNode(0)
while hq:
curr_node = heapq.heappop(hq)
temp.next = ListNode(curr_node.node.val)
temp = temp.next
next_node = curr_node.node.next
if next_node:
heapq.heappush(hq, CustomNode(next_node))
return dummy.next