十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。(BFS)

采用H5高端网站建设+css3国际标准网站建设,让网站自动适应用户使用终端设备,PC、平板、手机等,一个网址适应,一套内容统一战略,节约企业资源。创新互联还提供网站后期营销如:软文发稿、友情链接、一元广告等。一般建站公司不为企业填充资料,更谈不上内容策划,结果导致网站界面优秀,内容却十分空泛或整体不协调,内容策划、内容填充请交给我们。
思路:
根据题目,想到层序遍历时,按照从上到下,从左到右的访问每一个结点,用到一个辅助队列(先进先出才能保证从左到右的访问)。
代码:
/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
vector PrintFromTopToBottom(TreeNode *root)
{
//保存打印序列
vector v1;
//先进先出
queue q1;
if(root==NULL)
{
return v1;
}
q1.push(root);
v1.push_back(root->val);
while(!q1.empty())
{
TreeNode* tmp=q1.front();
q1.pop();
if(tmp->left!=NULL)
{
q1.push(tmp->left);
v1.push_back(tmp->left->val);
}
if(tmp->right!=NULL)
{
q1.push(tmp->right);
v1.push_back(tmp->right->val);
}
}
return v1;
}
};