解析Java树结构,而节点可以包含ArrayList';s

解析Java树结构,而节点可以包含ArrayList';s,java,data-structures,tree,Java,Data Structures,Tree,我已经开始实现Java树结构: Root(Key, Value) --> NODE1(Key, Value) --> NODE2(Key, Value) --> NODE3(Key, Value) --> NODE4(Key, Value) --> NODE5(Key, Value)

我已经开始实现Java树结构:

Root(Key, Value) --> NODE1(Key, Value)
                 --> NODE2(Key, Value)
                 --> NODE3(Key, Value) --> NODE4(Key, Value)
                                       --> NODE5(Key, Value)
                                       --> ...
在这里,您可以看到根节点可以包含未定义数量的子节点,而这个子节点也可以包含未定义数量的子节点。 所以现在我的问题是,如何在只给定键并从根节点开始的情况下查找
NODE5


(记住:这棵树可能非常大!)

你需要穿过这棵树,检查每个孩子。这可以通过递归实现。尝试类似的方法:

public Node getNode(Key key, List<Node> children) {
    if (children != null) {
        for (Node child : children) {
            if (child.getKey().equals(key)) {
                return child;
            } else {
                return getNode(key, child.getChildren());
            }
        }
    }
}
public节点getNode(键,列出子节点){
如果(子项!=null){
用于(节点子节点:子节点){
if(child.getKey().equals(key)){
返回儿童;
}否则{
返回getNode(key,child.getChildren());
}
}
}
}

如果树未排序,则必须查看整个树。有一些常见的方法可以做到这一点。它被称为()。有3种方式(预订单/中订单/后订单)。通常,可以将这种行为实现为递归函数

尝试使用递归。。。将使搜索变得非常容易。。。