采取层次遍历方法
对每一个结点判断,若存在这样一个结点:其左孩子不存在,且右孩子存在,则该树不是完全二叉树,否则是。
//判断二叉树是否是完全二叉树
bool isCompleteTree(node* T) {
queue<node* > que;
node* p = T;
que.push(p);
while (!que.empty()) {
p = que.front();
que.pop();
if (p->rchild && !p->lchild)
return 0;
if (p->lchild)
que.push(p->lchild);
if (p->rchirld)
que.push(p->rchild);
}
return 1;
}