加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-15 01:08:55 所属栏目: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;} 我正试图通过这个解决方

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读