所以我试图在我的教授Binary Tree Class中添加findHeight方法,但遇到了一些麻烦。
BTNode<T> findParent(BTNode<T> Root, BTNode<T> child)
{
if(!root)
{
return Null;
}
if(Root.left* == child || Root.right* == child)
{
return Root;
}
else
{
//recursively checks left tree to see if child node is pointed to
findParent(Root.left, child);
//recursively checks right tree to see if child node is pointed to
findParent(Root.right, child);
}
int findHeight(BTNode<T> thisNode)
{
if (Count.findParent(.root, thisNode) == null)
{
return 0;
}
return findHeight(thisNode.findParent) + 1;
}
我的问题是,在findHeight方法中,它调用findParent()方法,并且我必须引用参数thisNode所来自的二叉树的根,并且由于这只是类的一部分,所以我不知道我应该如何引用根。 BT(二叉树)类具有返回树根的函数,但是由于我没有要引用的二叉树,因此我不知道该怎么做。请帮忙!!!
最佳答案
通常,findHeight
函数不会为查找树的根而“担心”-它只是查找树的高度,该高度低于传递的任何节点。通常看起来像这样:
int findHeight(BTNode <T> *thiNode) {
if (thisNode == NULL)
return 0;
int left_height = findHeight(thisNode->left);
int right_height = findHeight(thisNode->right);
return 1 + max(left_height, right_height);
}
然后由用户决定要传递其高度的树的根。