二叉树查找特定节点的高度

时间:2015-01-03 18:03:57

标签: height binary-tree

大家好,我在某处堆叠,所以这是我的问题......

我得到了以下二叉树类

public class BTree
{
   private TreeNode root;
   int i = 0;
   /////////////////////
   public BTree()
   {
      root = null;
   }
}

和我的TreeNode类

public class TreeNode
{
    private TreeNode left; //consider public
    private int number;   //
    private TreeNode right; //////////////////
    //////////////////////
    public TreeNode(int number)
    {
      this.number = number;
      left = null;
      right = null;
    }
    ....
}

我需要构建一个可以计算Tree高度直到特定数据的方法 在一个节点内。例如:int height = tree.height(5); (查找包含数字5的节点的高度)

我参与其中:

public int height(int number)
{
    return countHeight(root, number);
}
private int countHeight(TreeNode node, int number)
{
    if(node != null && node.getNumber() == number)
      return 0;
    return //what should I write here?
}

递归方法对我来说有点难,所以我想 这里有点帮助。

Thnx提前......

1 个答案:

答案 0 :(得分:-1)

我刚刚编写了这段代码,似乎工作正常。

如果您有更好的解决方案,请随时分享。

public int height(int number) /// it could be Object 
{
    return countHeight(root, number);
}
private int countHeight(TreeNode node, int number)
{
    if(node != null && node.getNumber() == number)
        return 1;
    if(number < node.getNumber())
       return countHeight(node.getLeft()) + 1;    
    else                                          
       return countHeight(node.getRight()) + 1;
}