求二叉树的高度
思路:
递归:求左子树的高度,求右子树的高度,最后看哪个高度高选哪个。
size_t Height(BinaryTreeNode<T>* pRoot)
{
if(pRoot == NULL)
return 0;
int LeftHeight = Height(pRoot->Left) + 1;
int RightHeight = Height(pRoot->Right) + 1;
return LeftHeight > RightRoot ? LeftHeight : RightHeight;
}
销毁一棵二叉树
思路:摧毁左子树,摧毁右子树,摧毁根。
void Destroy(BinaryTreeNode<T>* pRoot)
{
if(pRoot)
{
Destroy(pRoot->Left);
Destroy(pRoot->Right);
delete pRoot;
pRoot = NULL;
}
}