题解 | #判断是不是完全二叉树#(队列+层次遍历)
判断是不是完全二叉树
http://www.nowcoder.com/practice/8daa4dff9e36409abba2adbe413d6fae
class Solution {
public:
/**
层次遍历
*/
bool isCompleteTree(TreeNode* root) {
// write code here
if(root==NULL) return true;
queue<TreeNode*> qu;
qu.push(root);
while(!qu.empty()){
TreeNode* tmp = qu.front();
qu.pop();
if(tmp==NULL) break; // 已经有空节点 跳出循环
qu.push(tmp->left);
qu.push(tmp->right);
}
while(!qu.empty()){ // 如果队列中还有非空节点
TreeNode* tmp = qu.front();
qu.pop();
if(tmp) return false; // 则不是完全二叉树
}
return true;
}
};