题解 | #删除链表的倒数第n个节点#

class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int k) {
        auto dummy = new ListNode(-1);  // 虚拟头结点
        dummy->next = head;  // 虚拟头结点下一个点存下head 1
        int n = 0;
        for (auto p = dummy; p; p = p->next) n ++ ;  // 遍历链表长度

        auto p = dummy;
        for (int i = 0; i < n - k - 1; i ++ ) p = p->next;  
        // 删除倒数第n个结点
        p->next = p->next->next;  // 让结点3的next指针指向5,就可以删除4
        return dummy->next;
    }   
};
全部评论

相关推荐

27届学院本誓死冲击...:自我评价和校园经历全删了,荣誉经历只留奖学金,项目也全得换都不如外卖
点赞 评论 收藏
分享
03-08 18:11
门头沟学院 Java
想要实习的牛:这么牛逼的简历都吃瘪吗🌚那我不寄了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务