leetcode: 23. Merge k Sorted Lists

来源:互联网 发布:淘宝评论显示有违禁词 编辑:程序博客网 时间:2024/06/15 23:14

Problem

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

AC

# TODO: Runtime Error in python3, while ac in python2class ListNode():    def __init__(self, x):        self.val = x        self.next = Noneclass Solution():    def mergeKLists(self, x):        if not x:            return        cur = dummy = ListNode(0)        import heapq        minHeap = [(l.val, l) for l in x if l]        heapq.heapify(minHeap)        while minHeap:            cur.next = heapq.heappop(minHeap)[1]            cur = cur.next            if cur.next:                heapq.heappush(minHeap, (cur.next.val, cur.next))        return dummy.nextif __name__ == "__main__":    list1, list1.next = ListNode(2), ListNode(4)    list2, list2.next = ListNode(1), ListNode(3)    list3 = ListNode(7)    result = Solution().mergeKLists([list1, list2, list3])    assert '{0}->{1}->{2}->{3}->{4}'.format(result.val, result.next.val, result.next.next.val,                                            result.next.next.next.val, result.next.next.next.next.val) \           == '1->2->3->4->7'

Error

但是在LeetCode提交时,如果选择 python3 解释器会报错:
这里写图片描述

具体原因见我的另一篇博客:python3 调用heapq库 时遭遇 “TypeError: unorderable types”

解决方案:

临时换个解释器就行。

原创粉丝点击