每天一道剑指offer-从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路
从上往下的遍历二叉树,不像前序,中序,后序一样,我们需要一个容器存储子节点,从左往右顺序添加,然后从左往右输出,遍历,这种先进先出规则的容器应该是队列,我们可以定义一个数组来模拟队列,存储当前结点下的子节点,遍历这个结点之后的子节点并添加到队列中,重复遍历过程,直到队列中结点全部被遍历为止。也称之为广度优先遍历。
代码
public ArrayList<Integer> PrintFromTopToBottom(TreeNode root) {ArrayList<Integer> res = new ArrayList<>();ArrayList<TreeNode> quene =new ArrayList<>();if(root==null)return res;quene.add(root);while(quene.size()!=0){TreeNode temp = quene.remove(0);//remove(0)删除queue的第一个元素并将其返回,模拟了队列的弹出操作if(temp.left!=null){quene.add(temp.left);}if(temp.right!=null){quene.add(temp.right);}res.add(temp.val);}return res;
}
每天一道剑指offer-从上往下打印二叉树相关推荐
- C#刷剑指Offer | 从上到下打印二叉树
[C#刷题]| 作者 / Edison Zhou 这是EdisonTalk的第288篇原创内容 我们来用之前学到的数据结构知识来刷<剑指Offer>的一些核心题目(精选了其中30+道题目) ...
- 二叉树高度的代码解析_剑指offer 从上到下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解析:这实际上就是二叉树的层序遍历.规律如下:每次打印节点,如果该节点有子节点,则将子节点放入队列末尾,然后取出队列头部最早进入队列的 ...
- 剑指offer 从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解决方案: import java.util.ArrayList; import java.util.ArrayList; impor ...
- 剑指offer 从上到下打印二叉树
思路:采用队列思想,一边进一边出,先进先出,选择双向队列deque(其实queue已经够了,没必要用deque) /* struct TreeNode { int val; struc ...
- [leetcode]剑指offer32-1.从上到下打印二叉树
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回: [3,9,20,1 ...
- 剑指offer23 从上往下打印二叉树
另一种写法,不用deque class Solution { public:vector<int> PrintFromTopToBottom(TreeNode* root) {vector ...
- 剑指offer:按之字形打印二叉树(栈|双向队列+中序遍历)
1. 题目描述 /**请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. */ 2. 双向队列 /*思路: ...
- 剑指offer之按之字形打印二叉树
题目描述 请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推. 解题思路 层次序遍历,然后存储到vector ...
- 【最佳解法】剑指 Offer 32 - III. 从上到下打印二叉树 III
立志用最少的代码做最高效的表达 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推. 例如: 给定二叉 ...
- 【简洁+注释】剑指 Offer 32 - II. 从上到下打印二叉树 II
立志用最少的代码做最高效的表达 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行. 例如: 给定二叉树: [3,9,20,null,null,15,7], 返回其层次遍历结果 ...
最新文章
- azure多功能成像好用吗_如何使用Azure功能处理高吞吐量消息
- 00asp.net_js前后台代码互访
- php5.2的配置方,Windows IIS PHP 5.2 安装与配置方法
- 如何批量删除QQ浏览器指定历史记录和导出指定的历史记录
- c++ 字符串合并_C语言输入字符和字符串(所有函数大汇总)
- 第一次作业:读优秀博文有感
- 「Linux」VMware安装centos7(一)
- java如何实现线程_java中线程的三种实现方式
- 各种语音编码方法,所需要的带宽
- linux版 tar.bz2如何解压,Linux下*.tar.bz2等文件如何解压--转
- 北大软微计算机专硕分数线,给暑假在复习的考研党谈点经验,一战上岸北大软微总分400+数一148公共课299...
- 5G 产业链:基站天线和小基站爆发潜力大
- 汽车计算机英语词汇,汽车专用英语词汇?
- 基于ISO27001的数据中心信息安全管理体系
- 微信小程序(5)——下载图片
- PostgreSQL 设置远程访问
- iOS 朋友圈点赞评论,发布朋友圈,想要的都有
- EasyX窗口大小字号字体字体颜色的设置
- 美国国土安全部承认使用数据库追踪数百万手机用户
- tddl+diamond(一)
热门文章
- jQuery UI 拖动(Draggable) - 还原位置
- Lucene多字段排序备忘(Sorting by multiple fields)
- 安装win7和XP双系统的注意事项
- VS2005 SP1 “无法使用此产品的安装源,请确认安装源存在,并且您可以访问它”的错误...
- Spring框架利用PropertyPlaceholderConfigurer初始化加载多properties文件
- 5.支付平台架构:业务、规划、设计与实现 --- 账务系统
- 2.分布式服务架构:原理、设计与实战 --- 彻底解决分布式系统一致性的问题
- 17.高性能MySQL --- MySQL 分支与变种
- 1.swoole 简介
- 9. explain