#include <algorithm>
#include <cstddef>
#include <cstdlib>
class Solution {
public:
    bool IsBalanced_Solution(TreeNode* pRoot) {
        if(pRoot == NULL)    return true;
	  
        return abs(high(pRoot->left)-high(pRoot->right))<=1&&IsBalanced_Solution(pRoot->left)&&IsBalanced_Solution(pRoot->right);
    }
  
  //计算节点root的的高度
    int high(TreeNode *root){
        if(root == NULL)    return 1;
        return max(high(root->left), high(root->right)) +1;
    }
};