leetcode合并两个有序链表(每日计划)

118 阅读1分钟

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 

 

示例:

输入: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)