题目描述(题目难度,困难)
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。
示例:
输入:
[
1->4->5,
1->3->4,
2->6
]
输出: 1->1->2->3->4->4->5->6
示例代码
解法一:
借助优先队列(小根堆),下面解法的时间复杂度为
,k 为链表个数,n 为总的结点数,空间复杂度为
,小根堆需要维护一个长度为 k 的数组。
时间复杂度分析:有 k 个结点的完全二叉树,高度为
,每次弹出堆顶元素和插入元素重新调整堆的时间复杂度都为