将所有节点的值放到一个PriorityQueue中,然后再重建列表

public NC66.ListNode mergeKLists(ArrayList<NC66.ListNode> lists) {
        PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
        for (NC66.ListNode list:lists
             ) {
            while (list != null){
                priorityQueue.add(list.val);
                list = list.next;
            }
        }
        NC66.ListNode dummyNode = new NC66.ListNode(-1);
        NC66.ListNode head= dummyNode;

        while (!priorityQueue.isEmpty()){
            head.next = new NC66.ListNode(priorityQueue.poll());
        }
        return dummyNode.next;
    }