将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4
我的算法实现:
var mergeTwoLists = function (l1, l2) {
let tempList1 = l1;
let tempList2 = l2;
let arr = []
while (tempList1) {
arr.push(tempList1.val)
tempList1 = tempList1.next
}
while (tempList2) {
arr.push(tempList2.val)
tempList2 = tempList2.next
}
arr.sort((a, b) => a - b)
let newNode = new ListNode()
let p = newNode
for (let i = 0; i < arr.length; i++) {
p.val = arr[i];
if (i !== arr.length - 1) {
p.next = new ListNode()
p = p.next
}
}
if (arr.length === 0) return null;
return newNode
};
这个刚开始没注意默认let newNode = new ListNode()这个,导致如果传递都是空的情况。
这个也只是基本实现,也就是第一想法完成,没有考虑怎样可以更好,这七天我都不会考虑优化算法,等我养成好习惯了,我再推进。我也怕中途放弃。
来源:力扣(LeetCode)