「Leetcode系列」021,026

image.png

你們好我是林三心,男人嘛,一週總有那麼一兩次,今天就給你們分享Leetcode的021題,和026題web

021.合併兩個有序鏈表

題目

image.png

代碼

var mergeTwoLists = function (l1, l2) {
    // 判斷其中一條鏈表是否爲空,空則返回另一條
    if (l1 === null) return l2 
    if (l2 === null) return l1
    // 建立一條新鏈表用來合併兩條鏈表
    let l3 = new ListNode(0)
    // 用於l3的前進,但又不改變l3
    let dommy = l3
    // 其中有一個爲null則退出循環
    while(l1 && l2) {
        // 判斷兩個節點的val誰小,誰小指向誰,而且小值鏈表要前進一步
        if (l1.val <= l2.val) {
            dommy.next = l1
            l1 = l1.next
        } else {
            dommy.next = l2
            l2 = l2.next
        }
        dommy = dommy.next
    }
    // 通過上步循環,必有一條鏈表爲null,如下是判斷誰爲null,並指向另一條鏈表
    if (l1 === null) {
        dommy.next = l2
    }
    if (l2 === null) {
        dommy.next = l1
    }
    // 返回結果l3的next,由於l3的第一個節點是0,無心義
    return l3.next
};
複製代碼



026.刪除排序數組中的重複項

題目

image.png

代碼

var removeDuplicates = function(nums) {
    if (nums.length === 0) return 0 // 若是數組長度爲0,無心義直接返回0
    // 首先以index爲0爲基準
    let i = 0
    // 開始遍歷,從1開始
    for (let j = 1; j < nums.length; j++) {
        // 若是基準元素與遍歷元素不等,則把基準元素右邊元素替換成遍歷元素,同時基準索引進1
        if (nums[i] !== nums[j]) {
            nums[++i] = nums[j]
        }
    }
    // i是索引,若是想返回個數,得加1
    return i + 1
};
複製代碼



今天,你加油了嗎?數組

相關文章
相關標籤/搜索