採用層次遍歷判斷二叉樹為完全二叉樹

blabla發表於2019-11-18
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 協議》,轉載必須註明作者和本文連結

相關文章