题目描述

分别按照二叉树先序,中序和后序打印所有的节点。

输入

{1,2,3}

返回值

[[1,2,3],[2,1,3],[2,3,1]]
import java.util.ArrayList;class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; }
}public class ThreeOrdersTree {public static void main(String[] args) {}/**** @param root TreeNode类 the root of binary tree* @return int整型二维数组*/public int[][] threeOrders (TreeNode root) {if(null == root){return null;}ArrayList<Integer> arrayList = new ArrayList<>();firstShow(root,arrayList);int[][] arrAll = new int[3][arrayList.size()];for (int i = 0; i < arrayList.size(); i++) {arrAll[0][i] = arrayList.get(i);}arrayList.clear();middleShow(root,arrayList);for (int i = 0; i < arrayList.size(); i++) {arrAll[1][i] = arrayList.get(i);}arrayList.clear();postShow(root,arrayList);for (int i = 0; i < arrayList.size(); i++) {arrAll[2][i] = arrayList.get(i);}return arrAll;}// 前序遍历private void firstShow(TreeNode root,ArrayList<Integer> arrayList){if(null == root){return;}arrayList.add(root.val);if(null != root.left){firstShow(root.left, arrayList);}if(null != root.right){firstShow(root.right,arrayList);}}// 中序遍历private void middleShow(TreeNode root,ArrayList<Integer> arrayList){if(null == root){return;}if(null != root.left){middleShow(root.left, arrayList);}arrayList.add(root.val);if(null != root.right){middleShow(root.right,arrayList);}}// 后序遍历private void postShow(TreeNode root,ArrayList<Integer> arrayList){if(null == root){return;}if(null != root.left){postShow(root.left, arrayList);}if(null != root.right){postShow(root.right,arrayList);}arrayList.add(root.val);}
}

常考数据结构与算法:实现二叉树先序,中序和后序遍历相关推荐

  1. 常考数据结构与算法:输出二叉树的右视图

    题目描述 请根据二叉树的前序遍历,中序遍历恢复二叉树,并打印出二叉树的右视图 上图树的右视图为:{1,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...

  2. 常考数据结构与算法:求二叉树的层序遍历

    题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...

  3. 常考数据结构与算法:在二叉树中找到两个节点的最近公共祖先

    题目描述 给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点.   假设节点的值都大于0. 比如9,10的最近公共祖先节点是2. 思路: 从根节点开始遍历 ...

  4. 常考数据结构与算法:判断二叉树是否对称(迭代法,递归法)

    给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的      1     /  \   2    2  / \    / \ 3 4  4  3 下面这棵二叉树不对称 ...

  5. 常考数据结构与算法:重建二叉树

    输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5 ...

  6. 常考数据结构与算法:两个链表生成相加链表

    题目描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数. 给定两个这种链表,请生成代表两个整数相加值的结果链表. 例如:链表 1 为 9->3->7,链表 ...

  7. 常考数据结构与算法:二叉树的最大深度

    题目描述 求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量. class TreeNode {int val;TreeNode left;TreeNode righ ...

  8. 常考数据结构与算法:二叉树的镜像

    题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \. 6 10 / \ / \. 5 7 9 11 镜像二叉树 8 / \. 10 6 / \ ...

  9. 常考数据结构与算法:二叉树的之字形层序遍历

    题目描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树之字形层序遍历的结果是 [ ...

最新文章

  1. UITableView
  2. java点到直线的投影点到经纬度_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...
  3. [原创]浅谈持续集成在测试中的应用
  4. mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件
  5. kubeadm安装的Kubernetes etcd备份恢复
  6. 【BZOJ4260】Codechef REBXOR(前i个数的最大区间异或值---01字典树+dp)
  7. 拉丁正方形 java_LeetCode 221. Maximal Square 最大正方形(C++/Java)
  8. python输出去掉空格
  9. POI 设置某列为文本格式 (亲测可用!!)
  10. 最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22)
  11. Scala中的面向对象
  12. Android开发需要学什么,技术实现
  13. python绝技:运用python成为顶级黑客
  14. 树美滑块验证——滑块识别、获取和提交参数一条龙分析和调用
  15. tf2.0不降版本也能完美解决module ‘tensorflow’ has no attribute ‘contrib’的问题
  16. (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
  17. 区块链落地应用虚实待验,以人为本挖井为先
  18. Illum voluptatum suscipit dolor tempore est sequi.
  19. 对如何确定测试预期结果的一些记录
  20. tkinter简明教程

热门文章

  1. 《Linux 性能及调优指南》1.6 了解Linux性能指标
  2. Bugku——Web——矛盾
  3. SQL SERVER深入学习学习资料参考
  4. Asp.Net Core 缓存的使用(译)
  5. Oracle case when的用法
  6. AlertDialog.Builder选择对话框
  7. 线性表之链式存储结构
  8. 基于http协议的api接口对于客户端的身份认证方式以及安全措施
  9. ubuntu 16.04 中配置Eclipse c++开发环境
  10. JS 设计模式之初识(一)-单例模式