diff --git a/java/23-Merge-k-Sorted-Lists.java b/java/23-Merge-k-Sorted-Lists.java new file mode 100644 index 000000000..4d05c5526 --- /dev/null +++ b/java/23-Merge-k-Sorted-Lists.java @@ -0,0 +1,24 @@ +class Solution { + public ListNode mergeKLists(ListNode[] lists) { + + Queue minHeap = new PriorityQueue<>(); + + for(ListNode nodes : lists){ + ListNode current = nodes; + while(current != null){ + minHeap.add(current.val); + current = current.next; + } + } + + ListNode dummy = new ListNode(0); + ListNode current = dummy; + + while(!minHeap.isEmpty()){ + current.next = new ListNode(minHeap.poll()); + current = current.next; + } + + return dummy.next; + } +}