——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;
    }
};



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