输入一棵二叉树,判断该二叉树是否是平衡二叉树。
注:平衡二叉树不一定是二叉搜索树,两者无必然联系。
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot)
{
if(pRoot==NULL)
return true;
int L=getDepth(pRoot->left);
int R=getDepth(pRoot->right);
int dif=L-R;
if(dif<-1||dif>1)
return false;
return getDepth(pRoot->left)&&getDepth(pRoot->right);
}
int getDepth(TreeNode *pRoot)
{
if(pRoot==NULL)
return true;
int L=getDepth(pRoot->left);
int R=getDepth(pRoot->right);
return L>R? L+1:R+1;
}
};