Skip to content

Commit a4aacaf

Browse files
committed
feat: add Remove Nth Node From End of List
1 parent 1443c02 commit a4aacaf

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ https://neetcode.io/roadmap
4040
| 206 | [Reverse Linked List](https://leetcode.com/problems/reverse-linked-list/) | Easy | [ts](./TypeScript/206.reverse-linked-list.ts) [rkt](./Racket/206.reverse-linked-list.rkt) | Linked List |
4141
| 21 | [Merge Two Sorted Lists](https://leetcode.com/problems/merge-two-sorted-lists/) | Easy | [ts](./TypeScript/21.merge-two-sorted-lists.ts) [rkt](./Racket/21.merge-two-sorted-lists.rkt) | Linked List |
4242
| 143 | [Reorder List](https://leetcode.com/problems/reorder-list/) | Medium | [ts](./TypeScript/143.reorder-list.ts) | Linked List |
43+
| 19 | [Remove Nth Node From End of List](https://leetcode.com/problems/remove-nth-node-from-end-of-list/) | Medium | [ts](./TypeScript/19.remove-nth-node-from-end-of-list.ts) | Linked List |
4344

4445
### Others
4546

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
interface ListNode {
2+
val: number;
3+
next: ListNode | null;
4+
}
5+
6+
function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
7+
let dummy: ListNode = {
8+
val: -1,
9+
next: head,
10+
};
11+
let slow: ListNode | null | undefined = dummy;
12+
let fast: ListNode | null | undefined = head;
13+
14+
while (n > 0) {
15+
fast = fast?.next;
16+
n--;
17+
}
18+
while (fast) {
19+
slow = slow?.next;
20+
fast = fast.next;
21+
}
22+
if (slow && slow.next) {
23+
slow.next = slow.next.next;
24+
}
25+
26+
return dummy.next;
27+
}

0 commit comments

Comments
 (0)