2002-d-五

/**
    算法思想:1.分别求出此节点的左子树与右子树的高度
                2.做差即为平衡因子
                3.递归遍历二叉树
**/

//求二叉树深度
int depth(BTNode *bt)
{
    if(bt!=NULL)
    {
        int l=depth(bt->lchild);
        int r=depth(bt->rchild);
        return l>r?l+1:r+1;
    }
    return 0;
}
//递归求二叉树每个结点的平衡因子
void balance(BTNode *bt)
{
   if(bt!=NULL)
   {
       balance(bt->lchild);
       balance(bt->rchild);
       
       int l=depth(bt->lchild);
       int r=depth(bt->rchild);
        
       printf("%d",l-r);
    }
}