www

导航

MergeKLists

public ListNode mergeKLists(ListNode[] lists) {
        if(lists==null||lists.length==0) return null;
        PriorityQueue<ListNode> minHeap=new PriorityQueue<>((o1, o1)->{
            return o1.val-o2.val;
        });
        for(int i=0; i<lists.length; i++){
            if(lists[i]!=null) minHeap.add(lists[i]);
        }
        ListNode head = new ListNode(0);
        ListNode p=head;
        while(minHeap.size()>0){
            ListNode temp=minHeap.poll();
            p.next=temp;
            p=p.next;
            if(temp.next!=null){
                minHeap.add(temp.next);
            }
        }
        return head.next;
    }

 

posted on 2019-02-25 18:51  www_practice  阅读(166)  评论(0编辑  收藏  举报