作者:zykBlog

链接:https://www.cnblogs.com/zykBlog

来源:https://www.cnblogs.com/zykBlog

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

LeetCode 23. 合并K个升序链表

思路
使用队列将每个链表元素放入,每次获取最小的元素加入到链表中
实现代码

class Solution {
   public ListNode mergeKLists(ListNode[] lists) {
        Queue<ListNode> heap = new PriorityQueue<>(new Comparator<ListNode>() {
            @Override
            public int compare(ListNode o1, ListNode o2) {
                return o1.val - o2.val;
            }
        });
        ListNode dummy = new ListNode(-1);
        ListNode tail = dummy;
        for (ListNode listNode : lists){
            if(listNode!=null) heap.offer(listNode);
        }
        while (!heap.isEmpty()){
            ListNode node = heap.poll();
            tail = tail.next = node;
            if(node.next !=null) heap.offer(node.next);
        }
        return dummy.next;
    }
}
posted @ 2020-11-09 20:54  0xcf  阅读(83)  评论(0编辑  收藏  举报

作者:zykBlog

链接:https://www.cnblogs.com/zykBlog

来源:https://www.cnblogs.com/zykBlog

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。