删除链表的第 n 个结点

ListNode* removeNthFromEnd(ListNode* head, int n) {
    function<ListNode*(ListNode*)> check;
    check = [&](ListNode* node)->ListNode*
    {
        if (node == nullptr){
            return nullptr;
        }
        
        node->next = check(node->next);
        --n;
        if (n == 0){
            return node->next;
        }
        
        return node;
    };
    return check(head);
}

 

posted @ 2015-08-25 01:49  wu_overflow  阅读(153)  评论(0编辑  收藏  举报