gpt4 book ai didi

java - 递归删除链表中所有出现的项目

转载 作者:搜寻专家 更新时间:2023-10-31 20:17:10 25 4
gpt4 key购买 nike

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,因为在最后 front 将等于 null。

最佳答案

在考虑此类问题时,最好拿笔和纸画一些东西,然后从高层次上考虑一下

例如
.....................
输入
列表:[3]-[2]-[5]-null
目标: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

关于java - 递归删除链表中所有出现的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48724753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com