合並k個排序的列表 Merge k Sorted Lists
阿新 • • 發佈:2018-11-26
nbsp 優先 poll 問題 ron 列表 時間 public bsp
2018-11-25 22:58:52
問題描述:
問題求解:
本題可以使用優先隊列高效的進行求解,整體的時間復雜度為O(nlogk)。
public ListNode mergeKLists(ListNode[] lists) { ListNode dummy = new ListNode(-1); ListNode cur = dummy; PriorityQueue<ListNode> pq = new PriorityQueue<>(new Comparator<ListNode>() { @Override public int compare(ListNode o1, ListNode o2) { return o1.val - o2.val; } }); for (ListNode ln : lists) if (ln != null) pq.add(ln); while (!pq.isEmpty()) { cur.next = pq.poll(); cur = cur.next; if (cur.next != null) pq.add(cur.next); } return dummy.next; }
合並k個排序的列表 Merge k Sorted Lists