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

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

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

/**
 * struct ListNode {
 *    int val;
 *    struct ListNode *next;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param head ListNode类 
     * @param n int整型 
     * @return ListNode类
     */
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        // write code here
        if(head==nullptr || n<1) return nullptr;

        ListNode newHead(0);
        newHead.next=head;

        ListNode *l1=head;
        ListNode *l2=head;

        for(int i=0;i<n;i++){
            l2=l2->next;
        }

        ListNode *p=&newHead;
        while(l2){
            p=l1;
            l2=l2->next;
            l1=l1->next;
        }

        p->next=l1->next;
        delete l1;

        return newHead.next;

    }
};
全部评论

相关推荐

2025-11-28 13:56
已编辑
门头沟学院
所有好工作吻上来:最近可能压力比较大吧,面试的时候已经不屑于去说一些违心的话了,今天这场面试我真是没控制住啊,感觉我已经要发火了
实习学到最有价值的工作习...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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