File tree Expand file tree Collapse file tree 1 file changed +14
-8
lines changed Expand file tree Collapse file tree 1 file changed +14
-8
lines changed Original file line number Diff line number Diff line change 5
5
class Solution1 {
6
6
7
7
public ListNode mergeKLists (ListNode [] lists ) {
8
- Queue <Integer > minHeap = new PriorityQueue <>();
8
+ if (lists == null || lists .length == 0 ) {
9
+ return null ;
10
+ }
9
11
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 );
15
16
}
16
17
}
17
18
18
19
ListNode dummy = new ListNode (0 );
19
20
ListNode current = dummy ;
20
21
21
- while (!minHeap .isEmpty ()) {
22
- current .next = new ListNode (minHeap .poll ());
22
+ while (!queue .isEmpty ()) {
23
+ ListNode node = queue .poll ();
24
+ current .next = node ;
23
25
current = current .next ;
26
+
27
+ if (node .next != null ) {
28
+ queue .offer (node .next );
29
+ }
24
30
}
25
31
26
32
return dummy .next ;
You can’t perform that action at this time.
0 commit comments