您的位置:首页 > 其它

判断二叉树是否是完全二叉树

2012-03-30 13:21 337 查看
题目:

给出一个二叉树,判断是否是完全二叉树。

分析:我们都知道完全二叉树是指最后一层左边是满的,右边可能慢也不能不满,然后其余层都是满的,根据这个特性,利用层遍历,

如果我们当前遍历到了NULL结点即叶结点,那么后续如果还有非叶结点,就说明是非完全二叉树,所以利用队列,代码比较简单了。

View Code

bool is_completeTree(Node* r)
{
queue<Node*> q;
if(NULL != r)
{
q.push(r);
Node* cur = NULL;
bool flag = false;
while(!q.empty())
{
cur = q.front();
q.pop();
if(cur)
{
if(flag)
return false;
q.push(cur->left);
q.push(cur->right);
}
else
flag = true;
}
return true;
}
return true;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: