int check(struct TreeNode* Root) { if(!Root) return 0; int left=check(Root->left); int right=check(Root->right); if(abs(left-right)>1||left==-1||right==-1) return -1; return (left>right?left:right)+1; } bool IsBalanced_Solution(struct TreeNode* pRoot ) { if(!pRoot) return true; if(check(pRoot)==-1) return false; return true; }