Description:
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two Subtrees of every node never differ by more than 1.
Idea: when the height of the Left subtree differs from that of the right subtree by less than one, and the left and right subtree are both balanced binary trees, the tree is a balanced binary tree.
Code:
bool Solution::isBalanced(TreeNode *root){ if(root == NULL) return true; if(abs(treeHeight(root->left) - treeHeight(root->right)) > 1) return false; return isBalanced(root->left) && isBalanced(root->right);}int max(int a,int b){ return a > b ? a : b;}int Solution::treeHeight(TreeNode * root){ if(root == NULL) return 0; return max(treeHeight(root->left),treeHeight(root->right)) + 1;}
Leetcode: balanced binary tree