——Remove Nth Node From End of List

19、Remove Nth Node From End of List

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

给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。


 注意事项

链表中的节点个数大于等于n

样例

给出链表1->2->3->4->5->null和 n = 2.

删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.


代码:

class Solution {
public:
    ListNode* removeNthFromEnd(ListNode* head, int n) {
        bool FF=false;
        return removeNthFromEnd(head,n,FF);
    }
    ListNode* removeNthFromEnd(ListNode* head,int &n,bool &FF)
    {
        if(head->next) //递归到最底部
            head->next=removeNthFromEnd(head->next,n,FF);
        if(FF!=true&&--n==0)//判断是否是要删除点
        {
            FF=true;
            ListNode *curr=head->next;
            delete head;
            return curr;
        }
        return head;
    }
};



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章