递归求取二叉树深度
int depthBiTree(node* tree)
{
if (!tree) return 0;
int ldepth=depthBiTree(tree->lchild);
int rdepth=depthBiTree(tree->rchild);
return ldepth>rdepth?ldepth+1:rdepth+1;
}
平衡二叉树的判断和求二叉树深度类似
bool isBalanceBiTree(node* tree,int& depth)
{
if (!tree)
{
depth=0;
return true;
}
int ldepth,rdepth;
if(isBalanceBiTree(tree->lchild,ldepth)&&isBalanceBiTree(tree->rchild,rdepth))
{
int diff=ldepth-rdepth;
if(diff<=1&&diff>=-1)
{
depth=ldepth>rdepth?ldepth+1:rdepth+1;
return true;
}
}
return false;
}