你们好我是林三心,男人嘛,一周总有那么一两次,今天就给你们分享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
};
复制代码
今天,你加油了吗?数组