/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { private: bool OK ; public: bool isBalanced(TreeNode *root) { // Start typing your C/C++ solution below // DO NOT write int main() function OK = true; if(root==NULL) return OK; height(root); return OK; } int height(TreeNode *root) { if(root->left==NULL&&root->right==NULL) { return 1; } int left=0,right=0; if(root->left!=NULL) { left = height(root->left); } if(root->right!=NULL) { right = height(root->right); } if(abs(left-right)>1) OK =false; return (left>right?left:right)+1; } };