Skip to content

Commit 7b20581

Browse files
authored
Merge pull request #2416 from Dhanoosh/main
Update: 23-merge-k-sorted-lists.java
2 parents a9b1ceb + 4c3b5b0 commit 7b20581

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

java/0023-merge-k-sorted-lists.java

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,28 @@
55
class Solution1 {
66

77
public ListNode mergeKLists(ListNode[] lists) {
8-
Queue<Integer> minHeap = new PriorityQueue<>();
8+
if (lists == null || lists.length == 0) {
9+
return null;
10+
}
911

10-
for (ListNode nodes : lists) {
11-
ListNode current = nodes;
12-
while (current != null) {
13-
minHeap.add(current.val);
14-
current = current.next;
12+
PriorityQueue<ListNode> queue = new PriorityQueue<>((a, b) -> a.val - b.val);
13+
for (ListNode node : lists) {
14+
if (node != null) {
15+
queue.offer(node);
1516
}
1617
}
1718

1819
ListNode dummy = new ListNode(0);
1920
ListNode current = dummy;
2021

21-
while (!minHeap.isEmpty()) {
22-
current.next = new ListNode(minHeap.poll());
22+
while (!queue.isEmpty()) {
23+
ListNode node = queue.poll();
24+
current.next = node;
2325
current = current.next;
26+
27+
if (node.next != null) {
28+
queue.offer(node.next);
29+
}
2430
}
2531

2632
return dummy.next;

0 commit comments

Comments
 (0)