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 55class 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 ;
You can’t perform that action at this time.
0 commit comments