Java 寻找树结构的最长路径

Java 寻找树结构的最长路径,java,tree,Java,Tree,我有一个树状结构,如下所示: Tree { Node root; } Node { List children; } 我试图创建一个方法,返回最长路径的长度。我已经看到一些解决方案在二叉树中有效,但是每个节点可以有多少子节点是没有限制的,这就是我遇到问题的地方。我应该这样想 int getLongestPathLength(Node node) { if(node == null) return 0; int max = 0; for(Node child

我有一个树状结构,如下所示:

Tree {
   Node root;
}

Node {
   List children;
}

我试图创建一个方法,返回最长路径的长度。我已经看到一些解决方案在二叉树中有效,但是每个节点可以有多少子节点是没有限制的,这就是我遇到问题的地方。

我应该这样想

int getLongestPathLength(Node node) {
    if(node == null) return 0;
    int max = 0;
    for(Node child : node.children){
        max = Math.max(getLongestPathLength(child),max);
    }
    return 1+max;
} 

看起来你要找的东西叫做根的高度。您可以在这里看到计算它的基本算法(类似于前面答案中给出的算法):。

1。具体说明问题的类型。2.除了上面提到的(某种)模板之外,您还尝试过什么