从上往下打印二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:下面的二叉树,按照从上往下打印的顺序结为:8,6,10,5,7,9,11.
这个题目的意思就是层序遍历二叉树,层序遍历的原理就是以一个节点带下一个节点。
代码的实现:
#include<iostream>
using namespace std;
#include<queue>
struct TreeNode
{
int _value;
TreeNode* _left;
TreeNode* _right;
};
void LevelOrder(TreeNode* root)
{
if (root == NULL)
{
return;
}
queue<const TreeNode*> q;
q.push(root);
while (!q.empty)
{
const TreeNode* top = q.front();
q.pop();
cout << top->_value << " ";
if (top->_left != NULL)
{
q.push(top->_left);
}
if (top->_right != NULL)
{
q.push(top->_right);
}
}
}