我正在尝试在非二叉树中搜索节点,而实际上没有将节点传递给搜索方法。
每个节点都有一个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;
}