首先我们来判断一颗二叉树是否为满二叉树。要判断一颗二叉树是否为满二叉树,首先得知道满二叉树的概念:每一层的节点数均达到最大值,这颗树就是满二叉树。
我们可以用两个队列来实现,先看下面的代码:
bool Is_FullBinaryTree(BtNode* ptr)
{
bool res = true;
if (ptr == NULL) return res;//空树也是一颗满二叉树
queue<BtNode*> qu1, qu2;
int n = 1;
qu1.push(ptr);
while (!qu1.empty() || !qu2.empty())
{
if (n != qu1.size())
{
res = false;