判斷二叉樹是否是完全二叉樹


題目:

    給出一個二叉樹,判斷是否是完全二叉樹。

分析:我們都知道完全二叉樹是指最后一層左邊是滿的,右邊可能慢也不能不滿,然后其余層都是滿的,根據這個特性,利用層遍歷,

如果我們當前遍歷到了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;
}




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM