将所有节点的值放到一个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; }