<19>——Remove Nth Node From End of List

来源:互联网 发布:东华软件薛向东 编辑:程序博客网 时间:2024/06/05 13:25

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



原创粉丝点击