class Solution { public ListNode mergeKLists(ListNode[] lists) { PriorityQueue<ListNode>queue=new PriorityQueue<>(new Comparator<ListNode>() { public int compare(ListNode o1,ListNode o2){ return o1.val-o2.val; } }); for(int i=0;i<lists.length;i++){ if(lists[i]!=null){ queue.add(lists[i]); } } ListNode dummy =new ListNode(-1),cur=dummy; while(!queue.isEmpty()){ ListNode temp =queue.poll(); cur.next=temp; cur=temp; if(temp.next!=null){ queue.add(temp.next); } } return dummy.next; } } 参考:https://blog.csdn.net/katrina95/article/details/79112038