思路
本题考点:前后指针
假设链表长度为 s,前指针先走 n 步,然后前后指针以同样的速度同时走,当前指针走到末尾的时候,它走了 s - n 步,那么后指针也走了 s - n 步,那么它指向的就是倒数第 n 个节点。为了方便操作,可以添加一个头节点
var removeNthFromEnd = function (head, n) {
let dummy = new ListNode(0, head);
let slow = dummy,
fast = dummy;
for (let i = 0; i < n; i++) {
fast = fast.next;
}
while (fast.next) {
fast = fast.next;
slow = slow.next;
}
slow.next = slow.next.next;
return dummy.next;
};