您的位置:首页 > 其它

笔试题:判断一个树是不是平衡二叉树

2015-09-06 01:01 344 查看
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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: