删除链表中储存给定值的节点

链表和树都自带递归特性,我很喜欢。这一题很简单,有意思的是我是先把内部的 lambda 表达式写出来之后才发现可以直接用这个函数本身做递归。

ListNode* removeElements(ListNode* head, int val) {
    if (head == nullptr){
        return head;
    }
    
    head->next = removeElements(head->next, val);
    
    if (head->val == val){
        return head->next;
    }
    
    return head;
}

 

posted @ 2015-08-06 13:53  wu_overflow  阅读(125)  评论(0编辑  收藏  举报