常考数据结构与算法:实现二叉树先序,中序和后序遍历
题目描述
分别按照二叉树先序,中序和后序打印所有的节点。
输入
{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,4,3,7} 做此题之前可以先做下面3道题: 1. 常考数据结构与算法:求二叉树的层序遍历 2.常 ...
- 常考数据结构与算法:求二叉树的层序遍历
题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树层序遍历的结果是 [ [3], [9,20], ...
- 常考数据结构与算法:在二叉树中找到两个节点的最近公共祖先
题目描述 给定一棵二叉树以及这棵树上的两个节点 o1 和 o2,请找到 o1 和 o2 的最近公共祖先节点. 假设节点的值都大于0. 比如9,10的最近公共祖先节点是2. 思路: 从根节点开始遍历 ...
- 常考数据结构与算法:判断二叉树是否对称(迭代法,递归法)
给定一棵二叉树,判断琪是否是自身的镜像(即:是否对称) 例如:下面这棵二叉树是对称的 1 / \ 2 2 / \ / \ 3 4 4 3 下面这棵二叉树不对称 ...
- 常考数据结构与算法:重建二叉树
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5 ...
- 常考数据结构与算法:两个链表生成相加链表
题目描述 假设链表中每一个节点的值都在 0 - 9 之间,那么链表整体就可以代表一个整数. 给定两个这种链表,请生成代表两个整数相加值的结果链表. 例如:链表 1 为 9->3->7,链表 ...
- 常考数据结构与算法:二叉树的最大深度
题目描述 求给定二叉树的最大深度, 最大深度是指树的根结点到最远叶子结点的最长路径上结点的数量. class TreeNode {int val;TreeNode left;TreeNode righ ...
- 常考数据结构与算法:二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \. 6 10 / \ / \. 5 7 9 11 镜像二叉树 8 / \. 10 6 / \ ...
- 常考数据结构与算法:二叉树的之字形层序遍历
题目描述 给定一个二叉树,返回该二叉树的之字形层序遍历,(第一层从左向右,下一层从右向左,一直这样交替) 例如: 给定的二叉树是{3,9,20,#,#,15,7}, 该二叉树之字形层序遍历的结果是 [ ...
最新文章
- UITableView
- java点到直线的投影点到经纬度_12分高考答题必刷题型,“空间向量分析点到线的距离问题”...
- [原创]浅谈持续集成在测试中的应用
- mysql中的文件导入导出表设计_mysql导入导出表结构及表数据及执行sql文件
- kubeadm安装的Kubernetes etcd备份恢复
- 【BZOJ4260】Codechef REBXOR(前i个数的最大区间异或值---01字典树+dp)
- 拉丁正方形 java_LeetCode 221. Maximal Square 最大正方形(C++/Java)
- python输出去掉空格
- POI 设置某列为文本格式 (亲测可用!!)
- 最新Win10离线安装.NET Framework 3.5的方法(附离线包2022/3/22)
- Scala中的面向对象
- Android开发需要学什么,技术实现
- python绝技:运用python成为顶级黑客
- 树美滑块验证——滑块识别、获取和提交参数一条龙分析和调用
- tf2.0不降版本也能完美解决module ‘tensorflow’ has no attribute ‘contrib’的问题
- (转)iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)
- 区块链落地应用虚实待验,以人为本挖井为先
- Illum voluptatum suscipit dolor tempore est sequi.
- 对如何确定测试预期结果的一些记录
- tkinter简明教程