Title: (dc,linkedlist,heap)
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Exercises
Leetcode a few heap problems, priorityqueue to represent the heap, notice the way to construct the new priorityqueue.
/** Definition for singly-linked list. * public class ListNode {* int val, * ListNode next; * ListNode (in T x) {* val = x; * next = NULL; *} *}*/ Public classSolution { PublicListNode mergeklists (arraylist<listnode>lists) { if(lists.size () = =0) return NULL; Priorityqueue<ListNode> q =NewPriorityqueue<listnode> (Lists.size (),NewComparator<listnode>(){ Public intCompare (ListNode l1,listnode L2) {intv1=L1.val; intV2=L2.val; returnV1-v2; //return string.valueof (v1). CompareTo (String.valueof (v2)); } }); for(ListNode list:lists) {if(list!=NULL) Q.add (list); } ListNode head=NewListNode (0); ListNode prev=Head; while(!Q.isempty ()) {ListNode temp=Q.poll (); Prev.next=temp; if(temp.next!=NULL) {q.add (temp.next); } prev=Prev.next; } returnHead.next; } }
[Leetcode] Merge k Sorted List