Input: root = [3,9,20,null,null,15,7]
Output: true
Input: root = [1,2,2,3,3,null,null,4,4]
Output: false
Input: root = []
Output: true
Approach:
Find height and take abs
class Solution {
public:
int find_height(TreeNode *root){
if(root == NULL)
return 0;
int l = find_height(root->left); //Traverse Left
if(l == -1) return -1;
// if from bottom recieves -1 (tree not balanced)
int r = find_height(root->right); //Traverse Right
if(r == -1) return -1;
if(abs(l-r) >1) return -1;
return 1+max(l,r);
}
bool isBalanced(TreeNode* root) {
if(root==NULL)
return true;
return find_height(root) >= 1;
}
};