我有一个findNode方法,可在treenode中找到目标字符串。我遇到的问题是,我的递归方法似乎只沿树的一个分支下降,而没有像我认为的那样覆盖孔树。如果您需要更多代码,请询问。
public GeneralTreeNode findNode(String targetName) {
// name is the current name of the node
if(targetName.equals(this.name)) return this;
// children is a HashSet of all the nodes children
for(GeneralTreeNode child : children) return child.findNode(targetName);
// no node containing the string could be found
return null;
}
最佳答案
您正在循环中返回,因此为什么会停止。并非总是返回,只有找到了东西才返回。
for(GeneralTreeNode child : children) {
GeneralTreeNode result = child.findNode(targetName);
if (result != null) {
return result;
}
}
关于java - 递归方法不遍历所有树节点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26033586/