• 23. Merge k Sorted Lists


    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 };
  • 相关阅读:
    jQuery-css
    了解jQuery
    jQuery属性
    jQuery常用效果
    jQuery_$工具方法
    jQuery选择器
    jQuery核心对象
    $
    jQuery两把利器
    JavaScriptDOM
  • 原文地址:https://www.cnblogs.com/huenchao/p/7672685.html
Copyright © 2020-2023  润新知