题目描述:

从上往下打印出二叉树的每个节点,同层节点从左至右打印。

解题思路:

实际就是二叉树的中序遍历问题。之前在leetcode刷过类似题目。

利用队列完成即可。

代码:

/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
vector<int> PrintFromTopToBottom(TreeNode* root) {
vector<int> res;
if(root==nullptr)
return res;
queue<TreeNode*> q;
TreeNode *tmp;
q.push(root);
while(!q.empty())
{
tmp = q.front();
q.pop();
res.push_back(tmp->val);
if(tmp->left!=nullptr)
q.push(tmp->left);
if(tmp->right!=nullptr)
q.push(tmp->right);
}
return res;
}
};

剑指offer:从上往下打印二叉树的更多相关文章

  1. 剑指offer从上往下打印二叉树 、leetcode102. Binary Tree Level Order Traversal(即剑指把二叉树打印成多行、层序打印)、107. Binary Tree Level Order Traversal II 、103. Binary Tree Zigzag Level Order Traversal(剑指之字型打印)

    从上往下打印二叉树这个是不分行的,用一个队列就可以实现 class Solution { public: vector<int> PrintFromTopToBottom(TreeNode ...

  2. 剑指offer——从上往下打印二叉树

    题目描述:从上到下打印二叉树的节点,同一层的从左到右打印 思路:采用队列来存储单层的节点,然后通过删除队列的头结点操作,依次遍历每一层. 代码为: import java.util.ArrayList ...

  3. 剑指Offer 从上往下打印二叉树(dfs)

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印.   思路: 用一个队列来辅助,先压入根节点,设置一个指针记录队列头位置,判断队头指针有没有孩子,有压入左右孩子,,,操作完一次,队头出 ...

  4. 用js刷剑指offer(从上到下打印二叉树)

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 牛客网链接 js代码 /* function TreeNode(x) { this.val = x; this.left = null ...

  5. 剑指Offer-22.从上往下打印二叉树(C++/Java)

    题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 分析: 按层次打印二叉树的节点,重点就是我们在打印一层节点的时候,同时按顺序保存好当前节点的下一层节点,也就是左节点和右节点,当此层节点 ...

  6. 剑指offer--29.从上往下打印二叉树

    层序遍历,队列 ------------------------------------------------------------------------------------- 时间限制:1 ...

  7. 剑指offer23 从上往下打印二叉树

    没有把队列的头部弹出,出现内存错误:

  8. Go语言实现:【剑指offer】按之字形打印二叉树

    该题目来源于牛客网<剑指offer>专题. 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. ...

  9. 剑指offer:按之字形打印二叉树(栈|双向队列+中序遍历)

    1. 题目描述 /** 请实现一个函数按照之字形打印二叉树, 即第一行按照从左到右的顺序打印, 第二层按照从右至左的顺序打印, 第三行按照从左到右的顺序打印, 其他行以此类推. */ 2. 双向队列 ...

  10. 剑指Offer——按之字形顺序打印二叉树

    题目描述: 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 分析: 我们都知道二叉树的层次遍历用的是队 ...

随机推荐

  1. [Message123] JMS 与 MQ

    https://www.cnblogs.com/steven520213/p/6810369.html JMS的队列消息传递过程如下图(消费者与生产者): JMS的主题消息传递过程如下图(发布/订阅) ...

  2. oracle常见受权与回收权限 grant和revoke

    1.GRANT 赋于权限 常用的系统权限集合有以下三个: CONNECT(基本的连接),   RESOURCE(程序开发),   DBA(数据库管理) 常用的数据对象权限有以下五个: ALL   ON ...

  3. greys java在线诊断工具

    greys是一个开源的github项目,用来分析运行中的java类.方法等信息. greys工具地址: https://github.com/oldmanpushcart/greys-anatomy/ ...

  4. Python2.7-fileinput

    fileinput 模块,对输入的文件流进行迭代操作,可以说是对 open() 的一个扩展,它可以直接修改文件,也可以对他们进行备份 模块方法: fileinput.input([files[, in ...

  5. windows安装wget

    windows安装wget1. 下载wget-1.11.4-1-setup.exehttps://jaist.dl.sourceforge.net/project/gnuwin32/wget/1.11 ...

  6. poj 1364 King(线性差分约束+超级源点+spfa判负环)

    King Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 14791   Accepted: 5226 Description ...

  7. CentOS7下双网卡iptables端口转发规则

    1. 拓扑图 10.1.1.173(内网目标)  <--------  10.1.1.207(内网网关)+172.16.5.100(外网入口) <----------- 172.16.6. ...

  8. odoo自动更新表中数据

    这是追踪信息用的查询语句,__init__方法初始化作用 _order = ctx = dict(context or {}, mail_create_nolog=True) new_id = sup ...

  9. ASP.NET Core MVC 模型绑定 (转载)

    ASP.NET Core MVC的Model Binding会将HTTP Request数据,以映射的方式对应到参数中.基本上跟ASP.NET MVC差不多,但能Binding的来源更多了一些.本篇将 ...

  10. 20155204 王昊《网络对抗技术》EXP3

    20155204 王昊<网络对抗技术>EXP3 一.基础问题回答 1.杀软是如何检测出恶意代码的? 答: 基于特征码:一段特征码就是一段或多段数据.(如果一个可执行文件(或其他运行的库.脚 ...