题解 | #删除链表的倒数第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;
    }   
};
全部评论

相关推荐

迷茫的大四🐶:当你得到一些东西,那这些东西就会变成基本项,你有别人也有
点赞 评论 收藏
分享
10-17 13:54
上海大学 运营
雾凇岛:这还说什么了,冲了兄弟们
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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