解答
解题思路:同样也是快慢指针,只不过快指针提前走n+1步,还得判断一种特殊情况,就是n是不是和链表的长度相等
var removeList=function(head,n){
let fast=head;
let slot=head;
while(--n){
fast=fast.next; //先走n步
}
// 判断链表的长度是不是n,如果刚好走了n步,没有下一个节点,就删除第一个节点并返回
if(!fast.next)return head.next
// 如果不是,快指针就再走一步,比慢指针提前走n+1步
fast=fast.next
// 快慢指针一起前进
while(fast&&fast.next){
fast=fast.next
slot=slot.next
}
slot.next=slot.next.next
return head
}
我还是个菜鸟