Merge pull request #1566 from laerpeeK/master

fix:链表理论基础.md
This commit is contained in:
程序员Carl
2022-08-19 09:18:06 +08:00
committed by GitHub
4 changed files with 17 additions and 11 deletions

View File

@ -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;
} }

View File

@ -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;
}; }
``` ```
版本二(计算节点总数法): 版本二(计算节点总数法):

View File

@ -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;
} }

View File

@ -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;