找到树结构的最长路径

时间:2013-11-15 23:59:42

标签: java tree

我的树结构如下所示:

Tree {
   Node root;
}

Node {
   List children;
}

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

2 个答案:

答案 0 :(得分:6)

我应该做这样的事情

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 :(得分:0)

看起来你正在寻找的东西称为根的高度。你可以在这里看到计算它的基本算法(类似于上一个答案中给出的算法):http://cs.nyu.edu/courses/fall02/V22.0310-002/lectures/lecture-08.html