请无视我的解题思路,算法一点都不懂. 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
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]
1
KHHj7U2DNR 2019-05-25 01:37:08 +08:00 via Android
试试在 return 语句之前加一句 "array[array.length-1].next = null" ?
|
2
TomVista OP 厉害了 @KHHj7U2DNR
|