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.
Code:
1 int height( TreeNode * root ) 2 { 3 if ( root == NULL ) 4 return 0; 5 else 6 return max( height( root->left ), height( root->right) ) + 1; 7 } 8 9 bool isBalanced(TreeNode* root) { 10 if ( root == NULL ) 11 return true; 12 13 if ( abs(height(root->left)-height(root->right)) > 1 ) 14 return false; 15 else 16 return isBalanced( root->left ) && isBalanced( root->right ); 17 }
原文:http://www.cnblogs.com/happygirl-zjj/p/4590617.html