/**
* Definition for binary tree
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
高度平衡二叉树:
它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树
//任何节点的两个儿子子树的高度最大差别为一,被称为高度平衡树
class Solution {
public:
-------------------------------------------------
int Count(TreeNode *root){ //计算树的最大深度的函数
if(root==NULL) return 0;
return max(Count(root->left),Count(root->right))+1;
}
-----------------------------------------------------
bool isBalanced(TreeNode *root) { //判断是否是高度平衡二叉树
if(root==NULL)return true;
if(abs(Count(root->left)-Count(root->right))>1)return false;
return isBalanced(root->left)&&isBalanced(root->right);
}
};