java – 递归删除链接列表中所有出现的项目

public static Node deleteall(Node front,String target){
    if (front == null){ return null;}
    if (front.data.equals(target)){
        return deleteall(front.next,target);
    }
    front.next=deleteall(front.next,target);
    return front;
}

我正试图通过这个解决方案,但这让我感到困惑.为什么它不总是以null结果,因为在结尾前面将等于null.

最佳答案
在考虑这些问题时,最好先拿笔和纸画一些东西并在高层次上思考

例如
……………
输入
列表:[3] – [2] – [5] – 空
目标:2
…………….

第一次通话=>结果

deleteall(N [3],2)=> [3]
但接下来是deleteall(N [2],2)
List = [3] -deleteall(N [2],2)

第二个电话

deleteall(N [2],2)=> deleteall(N [5],2)
一个节点现在跳过2
List = [3] -deleteall(N [5],2)

第三次电话

deleteall(N [5],2)=> [5]
但接下来是deleteall(null,2)
List = [3] – [5] -deleteall(null,2)

Lat调用返回null

列表最终清理没有2s
List = [3] – [5] -null

相关文章

最近看了一下学习资料,感觉进制转换其实还是挺有意思的,尤...
/*HashSet 基本操作 * --set:元素是无序的,存入和取出顺序不...
/*list 基本操作 * * List a=new List(); * 增 * a.add(inde...
/* * 内部类 * */ 1 class OutClass{ 2 //定义外部类的成员变...
集合的操作Iterator、Collection、Set和HashSet关系Iterator...
接口中常量的修饰关键字:public,static,final(常量)函数...