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


京公网安备 11010502036488号