我正在尝试使用for找到二叉树的高度 请帮助我。 我是通过使用深度来完成的,但不是这个 我应该在questionmark中添加什么?
public static int height2(Tree T, Node v) {
if(T.isLeaf(v))
return 0;
int h = 0;
for(?????) { //need help!!!
h = Math.max(height2(T,v.get_childLeft()),height2(T,v.get_childRight()));
}
return 1+h;
}
答案 0 :(得分:1)
我认为您不需要使用for
。它是二进制三,每个节点有两个最大的子节点,所以我认为该行
h = Math.max(height2(T,v.get_childLeft()),height2(T,v.get_childRight()));
可能不在循环中。你试过吗?
答案 1 :(得分:0)
仅计算childLeft
和childRight
的高度的递归方法。在二叉树的情况下,我们最多采用两个高度。因此,对于单个迭代语句使用for
是没有意义的。
你可以退回来,它会很好
return 1+Math.max(height2(T,v.get_childLeft()),height2(T,v.get_childRight()));
干杯。