Merge k Sorted Lists

import heapq

class LNWrap:
    
    def __init__(self, node):
        self.node = node

    def __lt__(self, other):
        return self.node.val < other.node.val

    def get(self):
        return self.node


class Solution:
    def mergeKLists(self, lists):
        hq = []
        for lst in lists:
            if lst != None:
                hq.append(LNWrap(lst))
        
        heapq.heapify(hq)

        head = temp = ListNode(-1, None)
        while hq:
            lst = heapq.heappop(hq)
            temp.next = ListNode(lst.get().val, None)
            temp = temp.next
            if lst.get().next:
                heapq.heappush(hq, LNWrap(lst.get().next))
        
        return head.next