标签:
题目: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.
示例代码如下:
class Solution { public: bool isBalanced(TreeNode *root) { if(root==NULL) return true; int lheight=BinaryTreeHeight(root->left);//求左子树高度 int rheight=BinaryTreeHeight(root->right);//求右子树高度 if(abs(lheight-rheight)>1)//如果高度差绝对值大于1,返回false return false; else //判断左右子树是否是平衡二叉树 return isBalanced(root->left)&&isBalanced(root->right); } //求二叉树的高度 int BinaryTreeHeight(TreeNode* root){ if(root==NULL) return 0; int lheight=BinaryTreeHeight(root->left); int rheight=BinaryTreeHeight(root->right); return lheight>rheight ? lheight+1:rheight+1; } };
Balanced Binary Tree(LeetCode)
标签:
原文地址:http://blog.csdn.net/sxhlovehmm/article/details/44752431