close

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.


# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def mergeKLists(self, lists):
        """
        :type lists: List[ListNode]
        :rtype: ListNode
        """
        mh = [(x.val, x) for x in lists if x != None]
        heapq.heapify(mh)
        head = ListNode(0)
        prev = head
        while mh:
            prev.next = heapq.heappop(mh)[1]
            prev = prev.next
            if prev.next != None:
                heapq.heappush(mh, (prev.next.val, prev.next))

        return head.next

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 g0d2 的頭像
    g0d2

    kazi1@的部落格

    g0d2 發表在 痞客邦 留言(0) 人氣()