所以有使命。 我们有一个类,调用NODE,实例是“节点”。 这个节点有很多孩子,这些孩子也有很多孩子等。 我怎么能算出这棵树的最高等级? 等:
此树中的最高级别为4(child1.1.2.1级别,节点级别为0) 请帮我! 我知道,我应该使用递归方法,但我不知道如果有人能解决这个问题,并编写代码......请... 谢谢! 该方法应该从:
开始public int maxLevel(NODE node){...
答案 0 :(得分:3)
此方法为基本案例(有0个孩子)返回1级别:
public int maxLevel() {
int maxChildLevel = 0;
for (Node child : children) {
maxChildLevel = Math.max(maxChildLevel, child.maxLevel());
}
return maxChildLevel + 1;
}
此示例旨在将maxLevel
声明为Node
的实例方法,因此不需要将Node
作为参数。
答案 1 :(得分:1)
您可以尝试这样的事情:
public static int maxLevel(Node node) {
if (node.children.length == 0) return 1;
int max = maxLevel(node.children[0]);
for (int i = 1 ; i < node.children.length ; i++) {
int n = maxLevel(node.children[i]);
if (n > max) max = n;
}
return max + 1;
}
其中node.children
是由node
的子节点组成的数组。