一.题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
在这里,我们只需要考虑其平衡性,不需要考虑其是不是排序二叉树
二.代码(C++)
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
return depth(pRoot)!=-1;
}
int depth(TreeNode* root)
{
if(!root)
return 0;
int l=depth(root->left);
if(l==-1)
return -1;
int r=depth(root->right);
if(r==-1)
return -1;
return abs(l-r)>1?-1:max(l, r)+1;
}
};
三.提交记录

四.备注
平衡二叉树:左右子树的深度差不超过1,且左右子树都是平衡二叉树。
本文详细解析了剑指Offer中关于平衡二叉树的题目,提供了C++代码实现,通过深度递归算法判断二叉树是否为平衡二叉树,即任意两棵子树的高度差不超过1。
&spm=1001.2101.3001.5002&articleId=107113818&d=1&t=3&u=1a9339c155fd4bc289a17f6856f5dbb5)
347

被折叠的 条评论
为什么被折叠?



