
快慢指针,快指针先出发,等到和慢指针之间相隔n个距离的时候,慢指针出发,等到快指针到达最后一个节点时,慢指针指向的节点的下一个节点(即slow.next)则是要删除的节点。
var removeNthFromEnd = function(head, n) {
let fast = head, slow = head
while(n--){
fast = fast.next
}
if(fast == null) return head.next
while(fast.next){
slow = slow.next
fast = fast.next
}
slow.next = slow.next.next
return head
};