美文网首页
104. Merge K Sorted Lists

104. Merge K Sorted Lists

作者: 鸭蛋蛋_8441 | 来源:发表于2019-07-11 06:52 被阅读0次

Description

Merge k sorted linked lists and return it as one sorted list.

Analyze and describe its complexity.

Example

Example 1:

Input:  [2->4->null,null,-1->null]

Output:  -1->2->4->null

Example 2:

Input: [2->6->null,5->null,7->null]

Output:  2->5->6->7->null

思路:

方法一:使用 PriorityQueue,这个方法需要先覆盖listnode类里的比较函数,否则不能把node放进堆里, 另外每次都只在堆里放K个node,等一个出去之后再把它的next放进来,这样放进堆的时间复杂度就会是logk。

方法二:类似归并排序的分治算法,这里要注意和list归并排序的异同, 以及返回什么值和返回值的用法。

方法三:自底向上的两两归并算法

时间复杂度均为 O(NlogK)

代码:

方法一:

方法二:

相关文章

网友评论

      本文标题:104. Merge K Sorted Lists

      本文链接:https://www.haomeiwen.com/subject/kuzqkctx.html