class ListNode {
val: number
next: ListNode | null
constructor(val?: number, next?: ListNode | null) {
this.val = (val===undefined ? 0 : val)
this.next = (next===undefined ? null : next)
}
}
function removeNthFromEnd(head: ListNode | null, n: number): ListNode | null {
let prev = null;
let fast = head;
let slow = head;
for (let i = 0; i < n; i++) {
fast = fast.next;
}
while (fast) {
prev = slow;
slow = slow.next;
fast = fast.next;
}
if (prev) {
prev.next = slow.next;
return head;
}
else {
return head.next;
}
};