gpt4 book ai didi

java - 在不传递对象的情况下递归搜索树

转载 作者:行者123 更新时间:2023-11-30 08:32:23 27 4
gpt4 key购买 nike

我正在尝试在非二叉树中搜索节点,而不实际将节点传递给搜索方法。

每个节点都有一个name 变量。 findChild() 方法采用一个名称,并在调用它的树中搜索以查找具有该名称的节点。

为了进行递归搜索,我在子节点上调用了 findChild(),而不是将子节点传递给 findChild() 方法。打印语句向我显示该方法通过树向下传递,但是 result 变量在展开堆栈时设置为 null,因此该方法始终返回 null。我明白为什么要这样做,但我不明白如何展开这种递归。感谢您的帮助!

我的findChild() 方法:

public FileNode findChild(String name) {
FileNode result = null;
for (FileNode child : this.getChildren()) {
if (child.getName() == name) {
return child;
} else {
child.findChild(name);
}
}
return result;
}

最佳答案

以下小改动会有帮助吗?您的 else 条件永远不会赋值。

public FileNode findChild(String name) {
FileNode result = null;
for (FileNode child : this.getChildren()) {
if (child.getName() == name) {
result = child;
break;
} else {
result = child.findChild(name);
if (result != null)
break;
}
}
return result;
}

关于java - 在不传递对象的情况下递归搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40156565/

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