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

返回:
[3,9,20,15,7]

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:
这道题明显是二叉树的层序遍历。首先定义一个队列,将二叉树的根节点入队,当队列非空,访问队首元素,然后判断其左右孩子是否为空,不为空的话,入队。
代码:

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {public:vector<int> levelOrder(TreeNode* root) {if(root == NULL) return {};vector<int> ans;queue<TreeNode*> q;q.push(root);while(!q.empty()){TreeNode* temp = q.front();ans.push_back(temp->val);q.pop();if(temp->left != NULL) q.push(temp->left);if(temp->right != NULL) q.push(temp->right);}return ans;}
};

剑指offer之从上到下打印二叉树相关推荐

  1. 剑指 Offer 32 . 从上到下打印二叉树

    main函数测试代码: 按标准输入输出,比如输入: 3,9,20,null,null,15,7 public static void main(String[] args) {//输入3,9,20,n ...

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

    声明:本系列博客是对何海涛<剑指offer>的关键点总结. 1.不分行从上到下打印二叉树 1.1. 问题描述 从上到下打印出二叉树的每一个结点,同一层的结点按照从左到右的顺序打印. 如二叉 ...

  3. 《剑指offer》-- 从上往下打印二叉树、二叉搜素树的后序遍历、二叉树中和为某一值的路径、二叉树与双向链表

    一.从上往下打印二叉树: 1.题目: 上往下打印出二叉树的每个节点,同层节点从左至右打印. 2.解题思路: 用arraylist模拟一个队列来存储相应的TreeNode. 3.代码实现: public ...

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

    题目: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 知识点: 像这种不是按照指针顺序打印的都需要引入辅助空间,由于分析可知,先进先出,因此我们引入了两端都可进出的队列deque,常用操作, ...

  5. 《剑指offer》从上往下打印二叉树

    题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解析:此题利用队列可以很好的解决层次打印,只需要按顺序入队以及出队就可以了(一点说明:root为null的时候需要考虑,java中的队列是 ...

  6. 剑指Offer之从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 二叉树的层次遍历,水题...有一个坑:如果root是空的,直接返回空vector,一定要注意边界条件!!!!!!!!! AC ...

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

    文章目录 分析 来源 分析 思路 典型的bfs模板题,这里使用STL中的queue,没用数组模拟队列. STL的思路:初始化队列时,根root入队:对于bfs主体过程while循环内,取队头元素,队头 ...

  8. 《剑指Offer》 从上往下打印出二叉树

    题目描述: 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 思路: 其实就是层序遍历,设置一个TreeNode*类型的队列s,用来保存二叉树层序遍历的节点,因为队列是先进先出,所以很好地控制了 ...

  9. 剑指offer23:从上到下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 用队列来实现: 从根节点开始,每次打印一个节点都判断该节点是否有子节点,如果有则放在队列末端: 取出队列最前面的节点,重复1 ...

最新文章

  1. tomcat中request对象是被创建的_常用开源框架中设计模式使用分析(全)
  2. 【ACM】二叉搜索树(Binary Search Tree /BS Tree) 小结
  3. XML DOM 解析器概述
  4. wsdl 与 soap协议详解
  5. mysql 两表管理查询_mysql两表查询
  6. APR 以及linux安装apr 库目的
  7. js 的prototype 属性和用法,外加__proto__
  8. Cesium场景导出为图片
  9. python算法实验是什么_PCA 算法实验代码(python)
  10. Kubernetes v1.19 正式发布!更新 33 项功能
  11. python调用cmd执行命令_详解python调用cmd命令三种方法
  12. SPI子系统分析之一:框架
  13. CorelDRAWX4的VBA插件开发(二十)创建进度条来显示程序运行进度
  14. 90后游戏开发毛星云跳楼自杀,8年执着国产3A梦碎
  15. O2O模式是什么意思 O2O运作模式有哪些?
  16. python跑完代码后怎么办_2017/06/14跑成功了的代码,FYI
  17. 20余年互联网沉浮史:剩者为王
  18. android系统裁剪优化
  19. 华为路由器基础配置——IP配置
  20. 腾讯青浦二期数据中心为啥得到了USGBC的青眼?

热门文章

  1. python string模块template_Python - 定制pattern的string模板(template) 详解
  2. python3导入模块原理_Python模块导入机制与规范
  3. go java性能_服务端I/O性能大比拼:Node、PHP、Java和Go
  4. 服务器系统杀毒系统崩溃怎么恢复,系统崩溃是什么原因导致的
  5. 数据结构c语言版第四章题库,数据结构(C语言版)(第4版)习题
  6. A20成功驱动FT5206触摸屏
  7. python中的类怎样理解_理解Python数据类:Dataclass fields 的概述(下)
  8. 【转】2.1【MySQL】运行原理(一):查询sql的执行过程及MySQL架构分析
  9. 【转】SharePoint 编程指南
  10. 【必知必会】pro文件及常用配置