【Medium】104. Merge K Sorted Lists
Merge k sorted linked lists and return it as one sorted list.
Analyze and describe its complexity.
Example:
Given lists:
[
2->4->null,
null,
-1->null
],
return -1->2->4->null.
解题思路
全部扔到一个Priority Queue里。
核心代码
PriorityQueue<Integer> pq = new PriorityQueue<>();
ListNode dummy = new ListNode(0);
ListNode head = dummy;
for (int i = 0; i < lists.size(); i++){
ListNode node = lists.get(i);
while (node != null){
pq.add(node.val);
node = node.next;
}
}
while (pq.size() > 0){
ListNode node = new ListNode(pq.peek());
pq.remove(pq.peek());
head.next = node;
head = head.next;
}
return dummy.next;
时间空间复杂度
O(nlog(n/2)) + S(n)
n为k个数组的总长度
Last updated