问题描述
合并k个有序链表,返回合并后的排序链表。
解题思路
本题是LeetCode第21题-合并两个有序链表的扩展。所以,一种思路是采用两两合并的算法进行合并,但是算法复杂度较高。
另外一种思路是采用最小堆法,算法步骤如下:
- 将k个链表的头结点放入最小堆;
- 从堆中取出最小元素并插入结果链表中;
- 如果取出的最小元素还有下一个元素,将其放入最小堆中;
- 执行步骤
2
,直到堆中元素全部被取出。
代码
1 |
|
合并k个有序链表,返回合并后的排序链表。
本题是LeetCode第21题-合并两个有序链表的扩展。所以,一种思路是采用两两合并的算法进行合并,但是算法复杂度较高。
另外一种思路是采用最小堆法,算法步骤如下:
2
,直到堆中元素全部被取出。1 |
|
微信支付
支付宝