From 4bc83966c303d5c32fb6f81e44dea908c58aad0f Mon Sep 17 00:00:00 2001 From: yanglbme Date: Wed, 20 Mar 2019 16:24:11 +0800 Subject: [PATCH] Update Merge_K_SortedLinkedlist.java format code --- .../Lists/Merge_K_SortedLinkedlist.java | 83 +++++++++---------- 1 file changed, 37 insertions(+), 46 deletions(-) diff --git a/DataStructures/Lists/Merge_K_SortedLinkedlist.java b/DataStructures/Lists/Merge_K_SortedLinkedlist.java index 27b025214..bea2c3161 100644 --- a/DataStructures/Lists/Merge_K_SortedLinkedlist.java +++ b/DataStructures/Lists/Merge_K_SortedLinkedlist.java @@ -1,63 +1,54 @@ -import java.util.*; +import java.util.Arrays; +import java.util.Comparator; +import java.util.PriorityQueue; +/** + * @author Arun Pandey (https://github.com/pandeyarun709) + */ public class Merge_K_SortedLinkedlist { - - /* - * This function merge K sorted LinkedList - * @param Node []a : array of LinkedList - * @param int N : size of array - * - * author Arun Pandey (https://github.com/pandeyarun709) - */ - Node mergeKList(Node[]a, int N) - { + + /** + * This function merge K sorted LinkedList + * + * @param a array of LinkedList + * @param N size of array + * @return node + */ + Node mergeKList(Node[] a, int N) { // Min Heap - PriorityQueue min = new PriorityQueue<>(new Comparator(){ - - public int compare(Node x , Node y){ - return x.data - y.data; - } - }); - + PriorityQueue min = new PriorityQueue<>(Comparator.comparingInt(x -> x.data)); + // adding head of all linkedList in min heap - for(int i =0 ; i< N ;i++) - { - min.add(a[i]); - } - + min.addAll(Arrays.asList(a).subList(0, N)); + // Make new head among smallest heads in K linkedList Node head = min.poll(); min.add(head.next); Node curr = head; - //merging LinkedList - while(!min.isEmpty()) { - + // merging LinkedList + while (!min.isEmpty()) { + Node temp = min.poll(); curr.next = temp; curr = temp; - - //Add Node in min Heap only if temp.next is not null - if(temp.next != null){ + + // Add Node in min Heap only if temp.next is not null + if (temp.next != null) { min.add(temp.next); } } - - return head; - - - } - - // Node Class - private class Node{ - private int data; - private Node next; - - public Node(int d) - { - this.data = d; - next = null; - } + + return head; } -} \ No newline at end of file + private class Node { + private int data; + private Node next; + + public Node(int d) { + this.data = d; + next = null; + } + } +}