mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 19:44:45 +08:00
@ -493,6 +493,9 @@ function threeSum(nums: number[]): number[][] {
|
|||||||
right: number = length - 1;
|
right: number = length - 1;
|
||||||
let resArr: number[][] = [];
|
let resArr: number[][] = [];
|
||||||
for (let i = 0; i < length; i++) {
|
for (let i = 0; i < length; i++) {
|
||||||
|
if (nums[i]>0) {
|
||||||
|
return resArr; //nums经过排序后,只要nums[i]>0, 此后的nums[i] + nums[left] + nums[right]均大于0,可以提前终止循环。
|
||||||
|
}
|
||||||
if (i > 0 && nums[i] === nums[i - 1]) {
|
if (i > 0 && nums[i] === nums[i - 1]) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
@ -191,18 +191,20 @@ TypeScript:
|
|||||||
```typescript
|
```typescript
|
||||||
function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
|
function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
|
||||||
let newHead: ListNode | null = new ListNode(0, head);
|
let newHead: ListNode | null = new ListNode(0, head);
|
||||||
let slowNode: ListNode | null = newHead,
|
//根据leetcode题目的定义可推断这里快慢指针均不需要定义为ListNode | null。
|
||||||
fastNode: ListNode | null = newHead;
|
let slowNode: ListNode = newHead;
|
||||||
for (let i = 0; i < n; i++) {
|
let fastNode: ListNode = newHead;
|
||||||
fastNode = fastNode.next;
|
|
||||||
|
while(n--) {
|
||||||
|
fastNode = fastNode.next!; //由虚拟头节点前进n个节点时,fastNode.next可推断不为null。
|
||||||
}
|
}
|
||||||
while (fastNode.next) {
|
while(fastNode.next) { //遍历直至fastNode.next = null, 即尾部节点。 此时slowNode指向倒数第n个节点。
|
||||||
fastNode = fastNode.next;
|
fastNode = fastNode.next;
|
||||||
slowNode = slowNode.next;
|
slowNode = slowNode.next!;
|
||||||
}
|
}
|
||||||
slowNode.next = slowNode.next.next;
|
slowNode.next = slowNode.next!.next; //倒数第n个节点可推断其next节点不为空。
|
||||||
return newHead.next;
|
return newHead.next;
|
||||||
};
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
版本二(计算节点总数法):
|
版本二(计算节点总数法):
|
||||||
|
@ -385,7 +385,8 @@ function removeElements(head: ListNode | null, val: number): ListNode | null {
|
|||||||
if (cur.val === val) {
|
if (cur.val === val) {
|
||||||
pre.next = cur.next;
|
pre.next = cur.next;
|
||||||
} else {
|
} else {
|
||||||
pre = pre.next;
|
//此处不加类型断言时:编译器会认为pre类型为ListNode, pre.next类型为ListNode | null
|
||||||
|
pre = pre.next as ListNode;
|
||||||
}
|
}
|
||||||
cur = cur.next;
|
cur = cur.next;
|
||||||
}
|
}
|
||||||
|
@ -186,7 +186,7 @@ TypeScript:
|
|||||||
```typescript
|
```typescript
|
||||||
class ListNode {
|
class ListNode {
|
||||||
public val: number;
|
public val: number;
|
||||||
public next: ListNode = null;
|
public next: ListNode|null = null;
|
||||||
constructor(value: number) {
|
constructor(value: number) {
|
||||||
this.val = value;
|
this.val = value;
|
||||||
this.next = null;
|
this.next = null;
|
||||||
|
Reference in New Issue
Block a user