LeetCode 19 删除链表的倒数第N个节点

LeetCode 19 删除链表的倒数第N个节点 题目跳转链接


class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
ListNode* dummyHead=new ListNode(0);
dummyHead->next=head;
ListNode* fast=dummyHead;
ListNode* slow=dummyHead;
ListNode* temp;
// for(int i=0;i<=n;i++) //这里是<=n 多走一次
// {
// fast=fast->next;
// } //这样写有报错,fast会为空
while(n--&&fast!=nullptr)
{
fast=fast->next;
}
fast=fast->next; //fast先走一步,相当于slow慢了一步,删掉slow前面的那个节点
while(fast!=nullptr) //最后一个的下一个 即最后一个的 fast->next 是不满足条件的 进不去
{
fast=fast->next;
slow=slow->next;
}
temp=slow->next;
slow->next=slow->next->next;
delete temp;
return dummyHead->next;
}
};
posted @   专心Coding的程侠  阅读(10)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示