当前位置: 首页> 娱乐> 影视 > 【LeetCode】每日一题:合并K个升序链表

【LeetCode】每日一题:合并K个升序链表

时间:2025/7/9 23:16:15来源:https://blog.csdn.net/qq_44459787/article/details/139997501 浏览次数:0次

给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。

解题思路

分治加两个链表合并,或者用根堆,根堆的初始化方法很值得背诵,还涉及lambda的用法

AC代码

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
ListNode.__lt__ = lambda a, b: a.val < b.valclass Solution:def mergeKLists(self, lists: List[Optional[ListNode]]) -> Optional[ListNode]:h = [head for head in lists if head]dummyhead = ListNode()indexhead = dummyheadheapify(h)while h:node = heappop(h)if node.next:heappush(h, node.next)indexhead.next = nodeindexhead = indexhead.nextreturn dummyhead.next
关键字:【LeetCode】每日一题:合并K个升序链表

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: