采用层次遍历判断二叉树为完全二叉树
bool isComplete(BinaryTree root){
if(!root) return false;
TreeNode *p = root;
SqQueue q;
initQueue(q);
enQueue(q, p); //根结点入队
while(!isEmpty(q)){
deQueue(q, p);
if(p){
enQueue(q, p->lChild);
enQueue(q, p->rChild);
}else{
while(!isEmpty(q)){
deQueue(q, p);
if(p) return false; //结点非空则不是完全二叉树
}
}
}
return true;
}
本作品采用《CC 协议》,转载必须注明作者和本文链接