码迷,mamicode.com
首页 > 编程语言 > 详细

[LeetCode][JavaScript]Merge k Sorted Lists

时间:2015-05-19 14:27:27      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

https://leetcode.com/submissions/detail/28015840/

Merge k Sorted Lists 

Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity.

 


 

直接使用了“Merge Two Sorted Lists”里写的方法。

http://www.cnblogs.com/Liok3187/p/4514347.html

两两比较就好了,每一轮比较都会减少一半lists的数量。

 

 1 /**
 2  * Definition for singly-linked list.
 3  * function ListNode(val) {
 4  *     this.val = val;
 5  *     this.next = null;
 6  * }
 7  */
 8 /**
 9  * @param {ListNode[]} lists
10  * @return {ListNode}
11  */
12 var mergeKLists = function(lists) {
13     function mergeTwoLists(l1, l2) {
14         if(l1 && l2 && l1.val !== undefined && l2.val !== undefined && l1.val > l2.val){
15             var tmp = l1;
16             l1 = l2;
17             l2 = tmp;
18         }
19         var i = l1, j = l2, res = curr = [];
20         if(i && i.val !== undefined){
21             res = curr = i;
22             i = i.next;
23         }else if(j && j.val !== undefined){
24             res = curr = j;
25             j = j.next;
26         }
27         while(i && j && i.val !== undefined && j.val !== undefined){
28             if(i.val < j.val){
29                 curr.next = i;
30                 i = i.next;
31             }else{
32                 curr.next = j;
33                 j = j.next;
34             }
35             curr = curr.next;     
36         }
37         if(i && i.val !== undefined){
38             curr.next = i;
39         }else{
40             curr.next = j;
41         }
42         return res;
43     }
44     
45     var k;
46     while(lists.length >= 2){
47         var tmpList = [];
48         for(k = lists.length - 1; k >= 0; k-=2){
49             tmpList.push(mergeTwoLists(lists[k], lists[k - 1]));
50         }
51         if(k === 0){
52             tmpList.push(lists[0]);
53         }
54         lists = tmpList;
55     }
56     
57     return lists[0] || [];
58 };

 

[LeetCode][JavaScript]Merge k Sorted Lists

标签:

原文地址:http://www.cnblogs.com/Liok3187/p/4514459.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!