美文网首页
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