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