码迷,mamicode.com
首页 > 其他好文 > 详细

23. Merge k Sorted Lists

时间:2017-10-15 19:32:05      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:ext   span   nbsp   null   linked   blog   com   log   val   

23. Merge k Sorted Lists

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

 1 var mergeKLists = function(lists) {
 2     
 3     var tempArry = [], listsLength;
 4     
 5     //先剔除空列表
 6     for (var i = 0; i < lists.length; ) {
 7         if (lists[i]) {
 8             i++;
 9         } else {
10             lists.splice(i, 1);
11         }
12     }
13     if (lists.length === 0) return [];
14     
15    //用一个队列来模拟,可以想象BFS的递推写法。
16     while (lists.length > 1) {
17         listsLength = lists.length;
18         if (listsLength % 2 !== 0) {
19             lists.push(null);
20             listsLength++;
21         }
22         for (var i = 0; i < listsLength; i += 2) {
23             tempArry.push(merge2Lists(lists[i], lists[i + 1]));
24         }
25         lists = tempArry;
26         tempArry = [];
27     }
28     return lists[0];
29     
30     function merge2Lists(list1, list2) {
31         var head = new ListNode(0), temp = head;
32         while (list1 && list2) {
33             if (list1.val < list2.val) {
34                 temp.next = new ListNode(list1.val);
35                 list1 = list1.next;
36             } else {
37                 temp.next = new ListNode(list2.val);
38                 list2 = list2.next;
39             }
40             temp = temp.next;
41         }
42         temp.next = list1 ? list1 : list2;
43         return head.next;
44     }
45 };

 

23. Merge k Sorted Lists

标签:ext   span   nbsp   null   linked   blog   com   log   val   

原文地址:http://www.cnblogs.com/huenchao/p/7672685.html

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