Description:
题目大意:判断是不是平衡二叉树,左右子树高度绝对值不超过 1
解题思路:
算法标签:递归
代码:
class Solution {
public:
bool isbalance = true;
int depth(TreeNode* root) {
if(root == NULL)
return 0;
// 求左右子树的深度
int leftdepth = depth(root -> left);
int rightdepth = depth(root -> right);
// 判断是否是平衡二叉树
if(abs(leftdepth - rightdepth) > 1)
isbalance = false;
return max(leftdepth , rightdepth) + 1;
}
bool IsBalanced_Solution(TreeNode* root) {
// 如果为空,为平衡二叉树
if(root == NULL)
return true;
depth(root);
return isbalance;
}
};