Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5868d5e

Browse files
Update 0019.删除链表的倒数第N个节点.md
原方法编译时发现对节点类型缺少断言。
1 parent 7e4d210 commit 5868d5e

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

‎problems/0019.删除链表的倒数第N个节点.md‎

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -188,18 +188,20 @@ TypeScript:
188188
```typescript
189189
function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
190190
let newHead: ListNode | null = new ListNode(0, head);
191-
let slowNode: ListNode | null = newHead,
192-
fastNode: ListNode | null = newHead;
193-
for (let i = 0; i < n; i++) {
194-
fastNode = fastNode.next;
191+
//根据leetcode题目的定义可推断这里快慢指针均不需要定义为ListNode | null。
192+
let slowNode: ListNode = newHead;
193+
let fastNode: ListNode = newHead;
194+
195+
while(n--) {
196+
fastNode = fastNode.next!; //由虚拟头节点前进n个节点时,fastNode.next可推断不为null。
195197
}
196-
while(fastNode.next) {
198+
while(fastNode.next) {//遍历直至fastNode.next = null, 即尾部节点。 此时slowNode指向倒数第n个节点。
197199
fastNode = fastNode.next;
198-
slowNode = slowNode.next;
200+
slowNode = slowNode.next!;
199201
}
200-
slowNode.next = slowNode.next.next;
201-
return newHead.next;
202-
};
202+
slowNode.next = slowNode.next!.next;//倒数第n个节点可推断其next节点不为空。
203+
return newHead.next;
204+
}
203205
```
204206

205207
版本二(计算节点总数法):

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /