2022/12/21

LeetCode 21. Merge Two Sorted Lists

問題:將兩個鏈結合併,並遵循遞增排序方式合併
解法:判斷兩個list.val誰比較小,就持續走訪誰,並將較小的加入到新的鏈結中
JavaScript
function ListNode(val, next) {
    this.val = (val === undefined ? 0 : val)
    this.next = (next === undefined ? null : next)
}

/**
 * @param {ListNode} list1
 * @param {ListNode} list2
 * @return {ListNode}
 */
var mergeTwoLists = function (list1, list2) {
    let headNode = new ListNode();
    let nextNode = headNode;

    while (list1 != null && list2 != null) {
        if (list1.val < list2.val) {
            nextNode.next = list1;
            list1 = list1.next;
        } else {
            nextNode.next = list2;
            list2 = list2.next;
        }

        nextNode = nextNode.next;
    }
    nextNode.next = list1 || list2;

    return headNode.next;
};