我在java中有一个TreeModel,并且给了我一个要查找的路径来检查该路径是否存在。例如/dir1/dir2/dir3/是我的树中的现有路径。我的树是非二元的。我该如何处理这个问题?我的想法是让这个函数采取 DefaultMutableTreeNode 然后检查节点是否与我的路径中的第一个目录同名,依此类推其余目录。我的问题是如何递归地更改为下一个字符串和下一个节点。我的函数应该是递归的、迭代的等吗?任何帮助都会很棒!提前致谢。
最佳答案
假设您有一个典型的树,其中路径的每个元素都是下一个节点的关键,那么在根节点上调用时,类似这样的内容应该起作用:
public boolean hasPath(String path) {
Node node = this;
for (String key : path.split("/")) {
node = node.get(key);
if (node == null)
return false;
}
return true;
}
它是迭代的,因此比陷入递归的兔子洞更容易理解。而且效率也更高。
关于java - 如何在给定路径的树中查找节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33448563/