C++ Very Simple and Short Recursive Solution, faster than 95%
height = -1 means not balanced.\nSo if the recursion returns -1 or this node is not balanced - we just return -1.\nElse - return maximum between heights of left
height = -1 means not balanced.\nSo if the recursion returns -1 or this node is not balanced - we just return -1.\nElse - return maximum between heights of left and right, to check further.\n```\nclass Solution {\npublic:\n    int height(TreeNode* root) {\n        if (!root)\n            return 0;\n        int left = height(root->left);\n        int right = height(root->right);\n        return (left == -1 || right == -1 || abs(left-right) > 1) ? -1 : max(left, right)+1;\n    }\n    \n    bool isBalanced(TreeNode* root) {\n        return height(root) != -1;\n    }\n};\n```\n**Like it? please upvote...**
['C']