19. 删除链表的倒数第 N 个结点
输入: head = [1,2,3,4,5], n = 2
输出: [1,2,3,5]
思路
- 首先把快的指针走n步
- 快的慢的一起走,走到链表尾部 快的走了(m - n) 慢的也走了(m - n)
- 这个时候就是倒数第n个 例如总长度是5 要删除倒数第二个 慢的就需要走 5 - 2 = 3步 这样就能指向要被删除的节点
var removeNthFromEnd = function(head, n) {
let list = new ListNode(0, head)
let p = list
let m = list
while(n--) {
p = p.next
}
while (p.next) {
m = m.next
p = p.next
}
m.next = m.next.next
return list.next
};