Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
即二叉树任意一个节点其左子树深度与右子树深度相差不大于1:
故先得到节点左右子树的深度然后判断
class Solution {
public:
int maxget(int x,int y){
if(x>y)return x;
else return y;}
int checkdepth(struct TreeNode* root,bool&isbalance){
if(root==NULL||isbalance==false)return 0;
if(root->left==NULL&&root->right==NULL&&isbalance)return 1;
int ldata=checkdepth(root->left,isbalance);
int rdata=checkdepth(root->right,isbalance);
if(abs(ldata-rdata)>1)isbalance=false;
return maxget(ldata,rdata)+1;
}
bool isBalanced(struct TreeNode* root) {
bool ans=true;
checkdepth(root,ans);
return ans;
}
};