直接上代码:跟二叉树的层序遍历有相似之处。
bool IsFullTree(TreeNode* root)
{
queue<TreeNode*>q;
q.push(root);
TreeNode* front = NULL;
front=q.front();
//队列中第一个节点为空跳出
while (front)
{
q.push(front->left);
q.push(front->right);
q.pop();
front= q.front()
}
while (!q.empty())
{
//第一个空节点之后的节点不为空,则返回
if (q.front() != NULL)
return false;
q.pop();
}
return true;
}