大家好,我在某处堆叠,所以这是我的问题......
我得到了以下二叉树类
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提前......
答案 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;
}