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;
    }
}

猜你喜欢

转载自blog.csdn.net/majinliang1234/article/details/83086263