题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
class Solution {
public:
bool IsBalanced_Solution(TreeNode* pRoot) {
int dep=0;
return dfs(pRoot,dep);
}
bool dfs(TreeNode* p,int &dep)
{
if(p==NULL)
{
dep=0;
return true;
}
int ledep=0,ridep=0;
if(!dfs(p->left,ledep)) return false;
if(!dfs(p->right,ridep)) return false;
int s=ledep-ridep;
if(s>1||s<-1) return false;
dep=max(ledep,ridep)+1;
return true;
}
};
本文提供了一种检查二叉树是否为平衡二叉树的方法。通过递归深度优先搜索算法,可以有效地确定每个节点的左右子树深度差异是否不超过1,以此来判断整棵树是否平衡。
1503

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



