题目:判断二叉树是不是平衡二叉树
分析:平衡二叉树的特点是,左右子树的深度不超过1,那么根据之前求树的深度进行扩展
int finddeepth(BinaryTreeNode* root)
{
if (root==NULL) {
return 0;
}
int deepleft =finddeepth(root->left);
int deepright=finddeepth(root->right);
return deepleft>deepright?(deepleft+1):(deepright+1);;
}
bool IsBalance(BinaryTreeNode* root)
{
if (root==NULL) {
return true;
}
int left=finddeepth(root->left);
int right=finddeepth(root->right);
if (std::abs(left-right)>1) {
return false;
}
return IsBalance(root->left) && IsBalance(root->right);
}