1. 程式人生 > >LeetCode: 23. Merge k Sorted Lists

LeetCode: 23. Merge k Sorted Lists

題目: 23. Merge k Sorted Lists(https://leetcode.com/problems/merge-k-sorted-lists/description/)

class Solution {
    public ListNode mergeKLists(ListNode[] lists) {
        ListNode result = null, tail = null;
        PriorityQueue<ListNode> queue = new PriorityQueue<>(Comparator.comparingInt(x -> x.val));

        for (ListNode node : lists) {
            if (node == null) {
                continue;
            }
            queue.add(node);
        }
        
        while (!queue.isEmpty()){
            ListNode head = queue.poll();
            if (head.next != null) {
                queue.add(head.next);
            }
            head.next = null;
            if (result == null){
                tail = result = head;
            } else {
                tail.next = head;
                tail = tail.next;
            }

        }
        return result;
    }
}