问题一
问题描述
从上到下按层打印二叉树,同层的从左到右打印。打印多行。
分析:可以想到层次遍历,借助队列存储结点;但是要打印成多行,所以必须设计两个变量,来表示当前打印的行的个数,和下一行打印的个数。
void PrintBinaryTree(Node* pRoot)
{
if (pRoot == NULL)
return;
queue<Node*> q;
q.push(pRoot);
int nextLevel = 0;
int curLevel = 1;
while (!q.empty())
{
Node* pCur = q.front();
printf("%d ", pCur->val);