题解 | #5.合并k个已排序的链表#

合并k个已排序的链表

http://www.nowcoder.com/practice/65cfde9e5b9b4cf2b6bafa5f3ef33fa6

每两个一组合并有序链表,将结果覆盖原数组,同时更改数组长度,直至数组长度为1

 function merge(h1,h2){
  let empty = {};
  let pre = empty;
  while(h1!=null && h2!=null){
    if(h1.val<h2.val){
      pre.next = h1;
      h1 = h1.next;
    }else{
      pre.next = h2;
      h2 = h2.next;
    }
    pre = pre.next;
  }
  pre.next = h1!=null ? h1 : h2;
  return empty.next;
}
function mergeKLists(lists) {
  while(lists.length > 1){
    let index = 0;
    for(let i=0; i<lists.length; i+=2){
      lists[index++]  = merge(lists[i],lists[i+1] || null);
    }
    lists.length = index;
  }
  return lists[0];
}
全部评论

相关推荐

挣K存W养DOG:入职送金条全球游,路过缅甸停一下🐔
点赞 评论 收藏
分享
10-07 23:57
已编辑
电子科技大学 Java
八街九陌:博士?客户端?开发?啊?
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务