java 打印一棵树_java编程题之从上往下打印出二叉树
本文实例为大家分享了java从上往下打印出二叉树的具体代码,供大家参考,具体内容如下
import java.util.ArrayList;
import java.util.Stack;
/**
*
* 剑指offer编程题(JAVA实现)——第22题:从上往下打印出二叉树
*
* 题目描述
* 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
*
*/
public class Test22 {
ArrayList arrayList = new ArrayList<>();
// 每层依次入栈
Stack stack1 = new Stack<>();
// 从stack1出栈的元素依次加入stack2,统一通过stack2找到他们的字节点并压入stack1
Stack stack2 = new Stack<>();
public ArrayList PrintFromTopToBottom(TreeNode root) {
if (root == null) {
return arrayList;// 空则返回
}
stack1.push(root);
while (!stack1.isEmpty()) {
while (!stack1.isEmpty()) {
TreeNode tmp = stack1.pop();
arrayList.add(tmp.val);
stack2.push(tmp);
}
while (!stack2.isEmpty()) {
TreeNode tmp2 = stack2.pop();
// 从左到右打印,所以右子树先入栈
if (tmp2.right != null) {
stack1.push(tmp2.right);
}
if (tmp2.left != null) {
stack1.push(tmp2.left);
}
}
}
return arrayList;
}
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
}
//其他方法
/**
public class Solution {
public ArrayList PrintFromTopToBottom(TreeNode root) {
ArrayList list = new ArrayList();
if(root == null) return list;
Deque deque = new LinkedList();
deque.add(root);
while(!deque.isEmpty()){
TreeNode t = deque.pop();
list.add(t.val);
if(t.left != null) deque.add(t.left);
if(t.right != null) deque.add(t.right);
}
return list;
}
}
*/
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java 打印一棵树_java编程题之从上往下打印出二叉树相关推荐
- 【剑指Offer】个人学习笔记_32_从上到下打印二叉树 IIIIII
目录 I 题目: [剑指 Offer 32 - I. 从上到下打印二叉树](https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er- ...
- java程序输出矩阵_java编程题之顺时针打印矩阵
本文实例为大家分享了java顺时针打印矩阵的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; /** * * 剑指offer编程题(JAVA实现)--第19题 ...
- java打印小票的时间_Java编程打印购物小票实现代码
这篇文章主要介绍了Java编程打印购物小票实现代码,具有一定参考价值,需要的朋友可以了解下. 简单介绍运行环境: 语言:Java 工具:eclipse 系统:Windows7 (打印设备暂时没有,所以 ...
- 剑指offer编程试题Java实现--22.从上往下打印二叉树
个人博客:小景哥哥 22.从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. import java.util.ArrayList; import java.util ...
- [剑指offer][JAVA]面试题第[32-1]题[从上到下打印二叉树][BFS]
[问题描述][中等] 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印. 例如: 给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7 返回: ...
- 《剑指offer》-- 从上往下打印二叉树、二叉搜素树的后序遍历、二叉树中和为某一值的路径、二叉树与双向链表
一.从上往下打印二叉树: 1.题目: 上往下打印出二叉树的每个节点,同层节点从左至右打印. 2.解题思路: 用arraylist模拟一个队列来存储相应的TreeNode. 3.代码实现: public ...
- 输入两个数、用python求他们的和_从键盘上输入俩个实型数,编程求它们的和差积商,要求输出时,保留两位小数C语言编程题:从键盘上输入两个...
从键盘上输入俩个实型数,编程求它们的和差积商,要求输出时,保留两位小数 C语言编程题:从键盘上输入两个 www.zhiqu.org 时间: 2020-11-23 参考代码: #includev ...
- JAVA实现从上往下打印二叉树(《剑指offer》)
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. import java.util.ArrayList; import java.util.LinkedList;/** public ...
- 剑指offer(Java实现) 从上往下打印二叉树
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 利用队列(链表)辅助实现. 代码实现 import java.util.ArrayList; import java.uti ...
最新文章
- php自动post系统,php自动过滤POST,GET传参
- 企业信息管理平台_OAJava企业信息化系统
- 服务器出口ip怎样修改,服务器出口ip设置
- Python爬虫QQ说说并分析朋友状况
- Singleton Pattern (单例模式)
- 中南大学c语言程序设计2013年下学期期末考试,2013级计算机专业本科生C语言程序设计期末考试资料.doc...
- C/C++求职宝典21个重点笔记(常考笔试面试点)
- C#枚举(Enum)小结
- WCF的追踪分析工具——SvcPerf
- 第十五:Pytest-html报告修改与汉化
- Linux系统给进程绑核
- 方波峰峰值和有效值_峰峰值,峰值,平均值,有效值的关系
- 最经典的10部爱情小说
- Linux系统mysql半同步复制
- ROS暑期学校与ROSCon 2018
- 华为android是什么手机,为什么说华为的麒麟810是一代神U?
- 如何评价「仙剑奇侠传六」使用Unity 3D引擎?
- Ubuntu_硬件与系统基础
- 信息系统设计评审的工作该如何开展
- PMP学员:项目管理的重要性
热门文章
- CTF-攻防世界-reverse进阶-srm-50;(巨详细)
- Python读取文件内容为字符串的方法(多种方法详解)
- Python如何存储数据到json文件
- python中如何将字符串连接在一起,多倍的字符串如何输出
- 查找100 sql oracle,Oracle中SQL语句执行效率的查找与解决
- ubuntu cmake交叉编译时报错:没有那个文件或目录
- 如何将VMware ubuntu虚拟机磁盘增长改成自分配(未成功)
- xshell安装与配置,Xftp(不能连接虚拟机解决方法,sudo apt-get install openssh-server,服务没开怎么传输数据?)(虚拟机和windows之间自由复制)
- python 随机数 随即字符 打乱元素顺序 random.randint()[uniform(), choice(), randrange(), shuffle(), sample()]
- Intel Realsense D435 python 如何获取(打印)所有摄像头序列号信息?