java使用'递归地查找二叉树的高度。

时间:2014-04-08 09:34:09

标签: java tree

我正在尝试使用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;
}

2 个答案:

答案 0 :(得分:1)

我认为您不需要使用for。它是二进制三,每个节点有两个最大的子节点,所以我认为该行

    h = Math.max(height2(T,v.get_childLeft()),height2(T,v.get_childRight()));

可能不在循环中。你试过吗?

答案 1 :(得分:0)

仅计算childLeftchildRight的高度的递归方法。在二叉树的情况下,我们最多采用两个高度。因此,对于单个迭代语句使用for是没有意义的。

你可以退回来,它会很好

return 1+Math.max(height2(T,v.get_childLeft()),height2(T,v.get_childRight()));

干杯。