1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
public class {
public ListNode mergeKLists(List<ListNode> lists) { if (lists == null || lists.size() == 0) { return null; } PriorityQueue<ListNode> minHeap = new PriorityQueue<>(lists.size(), new Comparator<ListNode>() { public int compare(ListNode a, ListNode b) { return a.val - b.val; } } ); ListNode dummy = new ListNode(0); ListNode tail = dummy; for (int i = 0; i < lists.size(); i++) { if (lists.get(i) != null) { minHeap.offer(lists.get(i)); } }
while (minHeap.size() > 0) { ListNode curt = minHeap.poll(); tail.next = curt; tail = tail.next; if (curt.next != null) { minHeap.offer(curt.next); } } return dummy.next;
} }
|
近期评论