【问题标题】:Binary Tree find height of a specific Node二叉树查找特定节点的高度
【发布时间】:2015-03-01 17:06:56
【问题描述】:

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

我得到了下面的二叉树类

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;
    }
    ....
}

我需要构建一个可以计算树高直到特定数据的方法 在一个节点内。例如: 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?
}

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

提前谢谢...

【问题讨论】:

    标签: height binary-tree


    【解决方案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;
    }               
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-08
      • 2020-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多