java - 如何在给定路径的树中查找节点

标签 java recursion tree defaultmutabletreenode

我在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/

相关文章:

c# - VFD显示编程

python - 我的代码引发递归错误。有人可以向我解释我的递归基本代码有什么问题吗?

java - 选择java树中的所有节点

java - Jxbrowser升级到4.3-版本检查

java - 如何在垂直 ScrollView 上使用 float 按钮?

javascript - Node.js/Javascript 多重递归 promise 在 View 中返回

java - 使用递归求几何和

node.js - 如何确定树 Node 是否是当前 Node 的间接后代?

haskell - 级序repminPrint

java - 提取资源的相关子图