class Solution {
public:
int length(TreeNode* t)
{
if(t==NULL)return 0;
return length(t->left)>length(t->right)?length(t->left)+1:length(t->right)+1;
}
bool IsBlance(TreeNode* t)
{
int len1 = length(t->left);
int len2 = length(t->right);
int temp = len1>len2?len1-len2:len2-len1;
return temp<=1;
}
bool IsBalanced_Solution(TreeNode* pRoot) {
queue<TreeNode*> Q;
if(pRoot==NULL)return true;
Q.push(pRoot);
while(Q.empty()==false)
{
TreeNode* p =Q.front();
if(p->left!=NULL)
Q.push(p->left);
if(p->right!=NULL)
Q.push(p->right);
if(IsBlance(p)==false)return false;
Q.pop();
}
return true;
}
};笔试题:判断一个树是不是平衡二叉树
最新推荐文章于 2024-07-31 14:49:05 发布
本文介绍了一种用于判断二叉树是否为平衡二叉树的算法实现。通过计算每个节点左右子树的最大深度,并检查整个树是否满足平衡条件来完成判断。该算法使用了队列进行层次遍历。
476

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



