023.合并 K 个升序链表,通过优先级队列和最小堆优雅解决
题意
给你一个链表数组,每个链表都已经按升序排列。
请你将所有链表合并到一个升序链表中,返回合并后的链表。
难度
困难
标签
排序、链表、堆
示例
输入:lists = [[1,4,5],[1,3,4],[2,6]]
输出:[1,1,2,3,4,4,5,6]
解释:链表数组如下:
[
1->4->5,
1->3->4,
2->6
]
将它们合并到一个有序链表中得到。
1->1->2->3->4->4->5->6
分析
合并 K 个升序链表,很容易就让我们想到之前做过的 021.合并两个有序链表,这道题是升级版,合并 K 个。
021 题解的思路是通过比较两个链表的头节点,更小的那个就是新链表的头节点,再从剩余的里面找到下一个节点。
回复