Title Description:
Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.
Problem Solving Ideas:
and autonomous methods. The K list is continuously decomposed into the first and second halves. Merging of two lists is performed separately. Finally, the merged results are merged together.
The code is as follows:
/** * Definition for singly-linked list. * public class ListNode {* int val; * ListNode Next; * ListNode (int x) {val = x;} *} */public class Solution {public ListNode mergeklists (listnode[] lists) {if ( Lists.length = = 0) return Null;return divide (lists, 0, lists.length-1);} Public ListNode divide (listnode[] L1, int. left, int. right) {if (left < right) {int mid = (left + right)/2;return Merget Wolists (Divide (L1, left, mid), divide (L1, mid + 1, right));} return l1[left];} Public ListNode mergetwolists (listnode L1, ListNode L2) {ListNode list = new ListNode (0); ListNode tmp = list;while (L1! = NULL | | L2! = NULL) {if (L1 = = null) {Tmp.next = new ListNode (l2.val); l2 = L2.next;} else if (L2 = = null) {Tmp.next = new ListNode (l1.val); l1 = L1.next;} else {if (L1.val < l2.val) {tmp.next = new ListNode (L1 . val); l1 = L1.next;} else {tmp.next = new ListNode (l2.val); l2 = L2.next;}} TMP = Tmp.next;} return list.next;}}
Java [Leetcode 23]merge k Sorted Lists