剑指 Offer 25. 合并两个排序的链表

69 阅读1分钟

剑指 Offer 25. 合并两个排序的链表

我们先new 一个链表节点,我们并不是用到它,只是起到了辅助作用

让两个链表p1和p2同时遍历,直到较短的那个链表遍历完成,其中在遍历时,要比较他们的值,谁较小则移动一位,此时p也跟随移动一位

const mergeTwoLists = (l1, l2) => {
    const res = new ListNode(0);
    let p = res;
    while (l1 && l2) {
        if (l1.val < l2.val) {
            p.next = l1;
            l1 = l1.next;
        } else {
            p.next = l2;
            l2 = l2.next;
        }
        p = p.next;
    }
    p.next = l1 ? l1 : l2;
    return res.next;
};

image.png