本文实例为大家分享了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编程题之从上往下打印出二叉树相关推荐

  1. 【剑指Offer】个人学习笔记_32_从上到下打印二叉树 IIIIII

    目录 I 题目: [剑指 Offer 32 - I. 从上到下打印二叉树](https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er- ...

  2. java程序输出矩阵_java编程题之顺时针打印矩阵

    本文实例为大家分享了java顺时针打印矩阵的具体代码,供大家参考,具体内容如下 import java.util.ArrayList; /** * * 剑指offer编程题(JAVA实现)--第19题 ...

  3. java打印小票的时间_Java编程打印购物小票实现代码

    这篇文章主要介绍了Java编程打印购物小票实现代码,具有一定参考价值,需要的朋友可以了解下. 简单介绍运行环境: 语言:Java 工具:eclipse 系统:Windows7 (打印设备暂时没有,所以 ...

  4. 剑指offer编程试题Java实现--22.从上往下打印二叉树

    个人博客:小景哥哥 22.从上往下打印二叉树 题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. import java.util.ArrayList; import java.util ...

  5. [剑指offer][JAVA]面试题第[32-1]题[从上到下打印二叉树][BFS]

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

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

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

  7. 输入两个数、用python求他们的和_从键盘上输入俩个实型数,编程求它们的和差积商,要求输出时,保留两位小数C语言编程题:从键盘上输入两个...

    从键盘上输入俩个实型数,编程求它们的和差积商,要求输出时,保留两位小数 C语言编程题:从键盘上输入两个 www.zhiqu.org     时间: 2020-11-23 参考代码: #includev ...

  8. JAVA实现从上往下打印二叉树(《剑指offer》)

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. import java.util.ArrayList; import java.util.LinkedList;/** public ...

  9. 剑指offer(Java实现) 从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. 解题思路 利用队列(链表)辅助实现. 代码实现 import java.util.ArrayList; import java.uti ...

最新文章

  1. php自动post系统,php自动过滤POST,GET传参
  2. 企业信息管理平台_OAJava企业信息化系统
  3. 服务器出口ip怎样修改,服务器出口ip设置
  4. Python爬虫QQ说说并分析朋友状况
  5. Singleton Pattern (单例模式)
  6. 中南大学c语言程序设计2013年下学期期末考试,2013级计算机专业本科生C语言程序设计期末考试资料.doc...
  7. C/C++求职宝典21个重点笔记(常考笔试面试点)
  8. C#枚举(Enum)小结
  9. WCF的追踪分析工具——SvcPerf
  10. 第十五:Pytest-html报告修改与汉化
  11. Linux系统给进程绑核
  12. 方波峰峰值和有效值_峰峰值,峰值,平均值,有效值的关系
  13. 最经典的10部爱情小说
  14. Linux系统mysql半同步复制
  15. ROS暑期学校与ROSCon 2018
  16. 华为android是什么手机,为什么说华为的麒麟810是一代神U?
  17. 如何评价「仙剑奇侠传六」使用Unity 3D引擎?
  18. Ubuntu_硬件与系统基础
  19. 信息系统设计评审的工作该如何开展
  20. PMP学员:项目管理的重要性

热门文章

  1. CTF-攻防世界-reverse进阶-srm-50;(巨详细)
  2. Python读取文件内容为字符串的方法(多种方法详解)
  3. Python如何存储数据到json文件
  4. python中如何将字符串连接在一起,多倍的字符串如何输出
  5. 查找100 sql oracle,Oracle中SQL语句执行效率的查找与解决
  6. ubuntu cmake交叉编译时报错:没有那个文件或目录
  7. 如何将VMware ubuntu虚拟机磁盘增长改成自分配(未成功)
  8. xshell安装与配置,Xftp(不能连接虚拟机解决方法,sudo apt-get install openssh-server,服务没开怎么传输数据?)(虚拟机和windows之间自由复制)
  9. python 随机数 随即字符 打乱元素顺序 random.randint()[uniform(), choice(), randrange(), shuffle(), sample()]
  10. Intel Realsense D435 python 如何获取(打印)所有摄像头序列号信息?