题解 | #合并k个已排序的链表#

合并k个已排序的链表

https://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

import java.util.*;
  //Definition for singly-linked list.
   class ListNode {
      int val;
      ListNode next;
      ListNode(int x) {
          val = x;
          next = null;
      }
  }

public class Solution {
    //小根堆
   /* public static class MyComp implements Comparator {
        @Override
        public int compare(ListNode o1, ListNode o2) {
            return o1.val - o2.val;
        }
    }*/
    public ListNode mergeKLists(ArrayList lists) {
        //找出头节点
        PriorityQueue heap=new PriorityQueue((a,b)->a.val-b.val);
        for(ListNode cur:lists){
            if(cur!=null){
                heap.add(cur);   
            }
        }
        if(heap.isEmpty()){
            return null;
        }
        ListNode head=heap.poll();
        if(head.next!=null){
            heap.add(head.next);   
        }
        ListNode cur=head;
        while(!heap.isEmpty()){
           ListNode temp=heap.peek();
           cur.next=heap.poll();
           cur=cur.next;
           if(temp.next!=null){
               heap.add(temp.next);     
            } 
        }

        return head;
    }
}
全部评论

相关推荐

零OFFER战士:另一个版本查看图片
点赞 评论 收藏
分享
07-11 15:12
门头沟学院 Java
别人在上班,我就在工位上看看视频啥的,这正常吗?
程序员小白条:实习就是摸鱼,只是公司指标,把你进来了,可能那时候客户很多,但等你进来的时候,已经是淡季了,根本没多少需求,或者说根本不适合实习生去完成,因此你就每天干坐着就行,可能1,2个月都没需求
实习生的蛐蛐区
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务