题目链接
英文链接:https://leetcode.com/problems/merge-k-sorted-lists/
中文链接:https://leetcode-cn.com/problems/merge-k-sorted-lists/
题目详述
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
1 | 输入: |
题目详解
- 可以用 PriorityQueue 构建一个大小为 K 的小顶堆。
- 每次取堆顶元素,同时放入已取出结点的下一个结点。
- 遍历结点时间复杂度为 O(n),维护堆的时间复杂度为 O(logk),整个时间复杂度为 O(nlogk)。
1 | public class LeetCode_00023 { |
我们已经知道 LeetCode21-合并两个有序链表 的情况,我们可以借助归并排序的思想,把当前链表序列分成两部分,每部分递归进行合并,然后将左右两部分合并得到的两个链表再进行合并即可。
1 | public class LeetCode_00023 { |