一.题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树
二.代码(C++)
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
return depth(pRoot)!=-1;
}
int depth(TreeNode* root)
{
if(!root)
return 0;
int l=depth(root->left);
if(l==-1)
return -1;
int r=depth(root->right);
if(r==-1)
return -1;
return abs(l-r)>1?-1:max(l, r)+1;
}
};
三.提交记录
四.备注
平衡二叉树:左右子树的深度差不超过1,且左右子树都是平衡二叉树。