# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, x):
# self.val = x
# self.next = None
import heapq
class Solution(object):
def mergeKLists(self, lists):
"""
:type lists: List[ListNode]
:rtype: ListNode
"""
def mylt(self, other):
return self.val <= other.val
setattr(ListNode, "__lt__", mylt)
res = p = ListNode(0)
heap = []
for node in lists:
if node:
heapq.heappush(heap, node)
while heap:
node = heapq.heappop(heap)
p.next = node
p = p.next
if node.next:
heapq.heappush(heap, node.next)
return res.next
23. Merge k Sorted Lists [Hard] k路合并
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- Description: 之前的leetcode 21的升级版 Merge k sorted linked lis...
- 题目链接tag: Hard; Divide and Conquer; question Merge k sort...
- 这道题可以利用merge 2 sorted list。想到D&C, K个list可以被二分,分到最后只有2个lis...
- Time:2019/4/10Title: Merge K Sorted ListsDifficulty: Diff...