你們好我是林三心,男人嘛,一週總有那麼一兩次,今天就給你們分享Leetcode的021題,和026題web
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
};
複製代碼
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
};
複製代碼
今天,你加油了嗎?數組