这么简单的东西我为啥还要写呢,因为我的方法比左神的简单,哈哈哈哈,就这么简单,嗝~~~ 按层遍历,如果有有一个数据出现左或者右为NULL了,以后队列中的全部数据都不允许出现左右节点,必须全部是NULL,就这么简单
bool isCompleteTree(TreeNode* root) {
if(NULL == root)
return false;
bool isend = false;
queue<TreeNode*>nodeTree;
nodeTree.push(root);
while(!nodeTree.empty())
{
TreeNode* nodeTemp = nodeTree.front();
if(NULL == nodeTemp->left)
isend = true;
else
{
if(isend)
return false;
else
nodeTree.push(nodeTemp->left);
}
if(NULL == nodeTemp->right)
isend = true;
else
{
if(isend)
return false;
else
nodeTree.push(nodeTemp->right);
}
nodeTree.pop();
}
return true;
}