int getHight(struct TreeNode *root) {
if (root == NULL) return 0;
int r = getHight(root->right);
int l = getHight(root->left);
if (l == -2 || r == -2 || abs(l - r) > 1) return -2; //记忆化
return (l > r ? l : r) + 1; //子树平衡,返回最高子树高度
}
bool isBalanced(struct TreeNode* root){
return getHight(root) >= 0;
}