#include <iostream>
#include <queue>
using namespace std;
struct Node
{
int value;
Node *left;
Node *right;
};
void printNumOfEveryLevel(Node *root)
{
if (NULL == root)
{
return;
}
queue<Node*> buf;
buf.push(root);
buf.push(NULL);
int count = 0;
int level = 0;
while (buf.size())
{
Node *front = buf.front();
buf.pop();
if (front == NULL)
{
level++;
cout << level << " : " << count << endl;
count = 0;
if (buf.empty())
{
break;
}
else
{
buf.push(NULL);
}
}
else
{
count++;
if (front->left != NULL)
{
buf.push(front->left);
}
if (front->right != NULL)
{
buf.push(front->right);
}
}
}
}