題目:
給出一個二叉樹,判斷是否是完全二叉樹。
分析:我們都知道完全二叉樹是指最后一層左邊是滿的,右邊可能慢也不能不滿,然后其余層都是滿的,根據這個特性,利用層遍歷,
如果我們當前遍歷到了NULL結點即葉結點,那么后續如果還有非葉結點,就說明是非完全二叉樹,所以利用隊列,代碼比較簡單了。

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;
}