zoukankan      html  css  js  c++  java
  • 23. Merge k Sorted Lists(js)

    23. Merge k Sorted Lists

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

    Example:

    Input:
    [
      1->4->5,
      1->3->4,
      2->6
    ]
    Output: 1->1->2->3->4->4->5->6
    题意:按大小顺序合并n条链表
    代码如下:
    /**
     * Definition for singly-linked list.
     * function ListNode(val) {
     *     this.val = val;
     *     this.next = null;
     * }
     */
    /**
     * @param {ListNode[]} lists
     * @return {ListNode}
     */
    var mergeKLists = function(lists) {
        if(lists.length===0) return null;
        var n=lists.length;
        while(n>1){
            var k=parseInt((n+1)/2);
            for(var i=0;i<parseInt(n/2);i++){
              lists[i]=  mergeTwoLists(lists[i],lists[i+k]);
            }
            n=k;
        }
        return lists[0];
    };
    var mergeTwoLists=function(list1,list2){
        var head=new ListNode(-1);
        var curr=head;
        while(list1 && list2){
            if(list1.val<list2.val){
                curr.next=list1;
                list1=list1.next;
            }else{
                curr.next=list2;
                list2=list2.next;
            }
            curr=curr.next;
        }
        if(list1) curr.next=list1;
        if(list2) curr.next=list2;
        return head.next;
    }
  • 相关阅读:
    Linux下SSH的Log文件路径
    Linux下压缩与解压命令tar
    Linux命令之at
    Linux下nice/renice命令小结
    Linux命令详解nice
    LVM---动态调整磁盘容量
    VT100字体
    Linux命令之WC
    for name in loop Shell
    Bind9用view配主从
  • 原文地址:https://www.cnblogs.com/xingguozhiming/p/10387376.html
Copyright © 2011-2022 走看看