leetcod 内存溢出

2019-05-24 15:16:39 +08:00
 TomVista

请无视我的解题思路,算法一点都不懂. 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

var mergeTwoLists = function(l1, l2) {
    var array =[];
    
    if(l1===null){
        return l2;
    }
    if(l2===null){
        return l1;
    }
    
    array.push(l1);
    while(array[array.length-1].next !== null){
        array.push(array[array.length-1].next);
    }
    
    array.push(l2);
    while(array[array.length-1].next !== null){
        array.push(array[array.length-1].next);
    }
    
    array.sort(function(a,b){
        return a.val-b.val;
    });
    
    for(var i=0;i<array.length-1;i++){
        array[i].next = array[i+1]
    }
    
    return array[0];
    
};

下面这一组测试会造成内存溢出 [-10,-9,-7,-1,-1,3,3,7,7] [-6,-4,1,1,2,6], 我用其他 更长的测试反而不会溢出 [-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7,8,9,10] [-6,-4,1,1,2,6]

992 次点击
所在节点    问与答
2 条回复
KHHj7U2DNR
2019-05-25 01:37:08 +08:00
试试在 return 语句之前加一句 "array[array.length-1].next = null" ?
TomVista
2019-05-25 10:31:33 +08:00
厉害了 @KHHj7U2DNR

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/567316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX