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

删除链表的倒数第n个节点

https://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6

class Solution {
    // 翻转再删除再翻转
  public:
    ListNode* reverseList(ListNode* head) {
        if (head == nullptr)return head;
        ListNode* front = nullptr, *cur = head;
        while (cur) {
            ListNode* nxt = cur->next;
            cur->next = front;
            front = cur;
            cur = nxt;
        }
        return front;
    }
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        head = reverseList(head);
        ListNode* cur = head->next, *front = head;
        n--;
        if (!n) {
            head = cur;
        } else {
            while (--n) {
                front = cur;
                cur = cur->next;
            }
            front->next = cur->next;
        }
        head = reverseList(head);
        return head;
    }
};

全部评论

相关推荐

11-13 20:16
已编辑
厦门理工学院 软件测试
专业嗎喽:硕佬,把学校背景放后面几段,学校背景双非还学院,让人看了就不想往下看。 把实习经历和个人奖项放前面,用数字化简述自己实习的成果和掌握的技能,比如负责项目一次通过率90%,曾4次发现项目潜在问题风险为公司减少损失等等
点赞 评论 收藏
分享
程序员牛肉:可以说含金量不如王者荣耀省标。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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