校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 算法 > 链表算法
题目

删除链表倒数第n个节点

解答

解题思路:同样也是快慢指针,只不过快指针提前走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

}


C 1条回复 评论
拾柒

我还是个菜鸟

发表于 2023-07-06 23:00:00
0 0