面试题23从上往下打印二叉树 思路:本质为树的层序遍历,设立一个队列先将根节点放到队列中。循环终止为队列为空,从上到下从左到右访问即可
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<stack>
#include<queue>
using namespace std;
//面试题23从上往下打印二叉树 思路:本质为树的层序遍历,设立一个队列。从上到下访问即可
typedef struct BinaryTreeNode
{
int data;
BinaryTreeNode *left,*right;
}BinaryTreeNode;
void LevelOrder(BinaryTreeNode*pRoot)
{
if(pRoot==NULL)
{
return;
}
BinaryTreeNode *pNode=pRoot;
queue<BinaryTreeNode*> Queue;
Queue.push(pNode);
while(!Queue.empty())
{
pNode=Queue.front();
Queue.pop();
printf("%d\t",pNode->data);
if(pNode->left!=NULL)
{
Queue.push(pNode->left);
}
if(pNode->right!=NULL)
{
Queue.push(pNode->right);
}
}
}
int main()
{
return 0;
}