资讯专栏INFORMATION COLUMN

Merge k Sorted Lists

huangjinnan / 384人阅读

摘要:最小堆,队列顶端的元素永远是最小的,那我们把个列表的第一个元素放入队列后,取出队列顶端的节点,就是需要找的最小的节点。注意点不接受值,前需要判断取出队列顶端节点后,要将该节点的节点放进队列中。

Merge k Sorted Lists
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

1.解题思路

这题是Merge Two Sorted Lists的拓展,我们当然也可以利用两两归并来实现,但这里我们采用PriorityQueue实现更简洁清晰。
最小堆,队列顶端的元素永远是最小的,那我们把k个列表的第一个元素放入队列后,取出队列顶端的节点,就是需要找的最小的节点。
注意点:
1)PriorityQueue不接受null值,add前需要判断;
2)取出队列顶端节点后,要将该节点的next节点放进队列中。
3)需要实现一个Comparator

2.代码

public class Solution {
    public ListNode mergeKLists(ListNode[] lists) {
        if(lists.length==0) return null;
        //min heap
        PriorityQueue pq=new PriorityQueue(11,new Comparator(){
            public int compare(ListNode l1,ListNode l2){
                return l1.val-l2.val;
            }
        } );
        ListNode dummy=new ListNode(0);
        for(int i=0;i           
               
                                           
                       
                 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69825.html

相关文章

  • [Leetcode] Merge Two Sorted Lists Merge K Sorted L

    摘要:注意因为堆中是链表节点,我们在初始化堆时还要新建一个的类。代码初始化大小为的堆拿出堆顶元素将堆顶元素的下一个加入堆中 Merge Two Sorted Lists 最新更新请见:https://yanjia.me/zh/2019/01/... Merge two sorted linked lists and return it as a new list. The new list...

    stefanieliang 评论0 收藏0
  • [LintCode] Merge K Sorted Lists [DC/Heap]

    摘要:分治做法中,函数依然是将链表结点两两进行比较,然后在函数中迭代两个二分后的结果。 Problem Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. Example Given lists: [ 2->4->null, null, ...

    happyhuangjinjin 评论0 收藏0
  • [LeetCode] 23. Merge k Sorted Lists

    摘要:思路这题中的中,个还有其中个别的等于的情况,所以要判断一下再加入代码 Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. Heap Time Complexity: Update the heap costs O(nklogk) Space ...

    Codeing_ls 评论0 收藏0
  • 23. Merge k Sorted Lists

    摘要:题目合并排序链表并返回一个排序列表。分析和描述它的复杂性。直接对个链表合并,找到个链表头最小的,将值追加到放在新创建的链表中,并把头移到下一个节点,直到所有的链表头运行后发现超时尝试两两合并两个链表,知道最终合并成一个运行通过 题目 Merge k sorted linked lists and return it as one sorted list. Analyze and des...

    qingshanli1988 评论0 收藏0
  • 355. Design Twitter , 用23. Merge k Sorted Lists和OO

    摘要:的想法就是用每次得到最小的链表头的值,输出。每个都有一个关注人列表,用储存。用户可以发消息,关注别人,取消关注别人。可以系统得到关注人的消息合集,这个方法必须在这个层级。因为用户只知道自己的信息。 Merge k Sorted Lists /** * Definition for singly-linked list. * public class ListNode { * ...

    1fe1se 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<