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

思路:
其实就是层序遍历,设置一个TreeNode*类型的队列s,用来保存二叉树层序遍历的节点,因为队列是先进先出,所以很好地控制了同层节点从左至右打印。如果root为空,直接返回空;将root入队列,当s不为空时,将此时s对应的节点的val放到treenum里,然后将s的左右孩子也入队列,再将已经取过val的节点pop。

代码:

/*
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> treenum;queue<TreeNode*> s;//用来保存按层序遍历顺序的节点if(root==NULL){//如果root为空,直接返回空return treenum;}s.push(root);//将root入队列while(!s.empty()){root=s.front();treenum.push_back(root->val);//当s不为空时,将此时s对应的节点的val放到treenum里if(root->left!=NULL){//将s的左右孩子也入队列(如果存在)s.push(root->left);}if(root->right!=NULL){s.push(root->right);}s.pop();//将已经取过val的节点出队列}return treenum;}
};

输出结果:运行时间: <1 ms 占用内存:8568K 状态:答案正确

《剑指Offer》 从上往下打印出二叉树相关推荐

  1. C#刷剑指Offer | 从上到下打印二叉树

    [C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第288篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...

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

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解决方案: import java.util.ArrayList; import java.util.ArrayList; impor ...

  3. 二叉树高度的代码解析_剑指offer 从上到下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解析:这实际上就是二叉树的层序遍历.规律如下:每次打印节点,如果该节点有子节点,则将子节点放入队列末尾,然后取出队列头部最早进入队列的 ...

  4. 剑指offer 从上到下打印二叉树

    思路:采用队列思想,一边进一边出,先进先出,选择双向队列deque(其实queue已经够了,没必要用deque) /* struct TreeNode {     int val;     struc ...

  5. [leetcode]剑指offer32-1.从上到下打印二叉树

    从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回: [3,9,20,1 ...

  6. java 打印一棵树_java编程题之从上往下打印出二叉树

    本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; import java.util.Stack; /** * ...

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

    从上往下打印出二叉树的每个节点,同层节点从左至右打印. 题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印. 分析:借助一个队列,先将根结点的指针入队列,出来时访问它,然后将它的左右孩子带到队 ...

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

    另一种写法,不用deque class Solution { public:vector<int> PrintFromTopToBottom(TreeNode* root) {vector ...

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

    // test20.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

最新文章

  1. Oracle的连接与会话
  2. flutter text 左对齐_Flutter基础篇之九-Text文本展示
  3. 一天学完spark的Scala基础语法教程八、集合(idea版本)
  4. 若你安全到家,来这儿报个平安吧
  5. ar - 创建静态库.a文件
  6. 9.6分神作又出续集,这是成年人最不敢直视的现实
  7. java关键字保留字_Java这个关键字
  8. 百度贴吧 “只看某人” 小工具
  9. 【原创】打造基于Dapper的数据访问层
  10. 第四天:使用 session cookie redis完善登录验证及登录路由
  11. 各大浏览器兼容性报告
  12. opencv3学习笔记(九)--------直方图与匹配
  13. 获取当前屏幕高度方法总结
  14. 苹果Mac突然没有声音,3 种方法快速解决没声音的问题
  15. 计算机二级MS office(word 01)
  16. 微信暗黑模式终于来啦
  17. 【分析】RBD Mirroring - 原理、概念、命令
  18. ACTION_DATE_CHANGED不响应
  19. Java基础到Java进阶——Java小白的历练之路------从0到1,开卷!
  20. 为什么说边缘计算是5G时代的必备品?

热门文章

  1. spring的钩子_模板方法模式——看看 JDK 和 Spring 是如何优雅复用代码的
  2. python黑色背景_如何去除Matplotlib图中的黑色背景
  3. tda7294参数引脚功能_电容在电路中的几种功能
  4. 笨方法“学习python笔记之关键字
  5. Bootstrap-CSS-按钮-图片-辅助类-响应式
  6. phpcms函数:用*号替换(私密信息)中间数据(如手机号、邮箱)
  7. js数字累加 · 递增动画 - 封装篇
  8. css实现发光的input输入框
  9. via浏览器简洁主页html源码 支持搜索提示
  10. python中的ix是啥_python pandas (ix iloc loc) 的区别