二叉树的遍历
2015-10-07 17:04
423 查看
二叉树结点的定义与先序(中左右)、中序(左中右)、后序(左右中)遍历,顺便写个最大深度,都是递归实现,之后再学习非递归的方法。
先序遍历的结果为:5,2,4,1,3,8,4,2,9,中序遍历的结果:4,2,1,5,4,8,2,3,9,后序遍历结果:4,1,2,4,2,8,9,3,5。
先序遍历的结果为:5,2,4,1,3,8,4,2,9,中序遍历的结果:4,2,1,5,4,8,2,3,9,后序遍历结果:4,1,2,4,2,8,9,3,5。
package leetcode; class TreeNode { TreeNode left; TreeNode right; int val; TreeNode(int val) { this.val = val; } static int getDepth(TreeNode root) { if(root==null) { return 0; } int right = getDepth(root.right); int left = getDepth(root.left); return left>right?left+1:right+1; } static void scanNodes(TreeNode root) { if(root==null) { return; } //System.out.println(root.val); //先序遍历 scanNodes(root.left); //System.out.println(root.val); //中序遍历 scanNodes(root.right); System.out.println(root.val); //后序遍历 } public static void main(String[] args) { TreeNode root = new TreeNode(5); TreeNode left1 = new TreeNode(2); TreeNode left2 = new TreeNode(1); TreeNode left3 = new TreeNode(4); TreeNode right1 = new TreeNode(3); TreeNode right2 = new TreeNode(8); TreeNode right3 = new TreeNode(9); TreeNode right4 = new TreeNode(4); TreeNode right5 = new TreeNode(2); root.left = left1; left1.right = left2; left1.left = left3; root.right = right1; right1.left = right2; right1.right = right3; right2.left = right4; right2.right = right5; scanNodes(root); System.out.println("The depth of BinaryTree is: "+getDepth(root)); } }
相关文章推荐
- SQL Server使用问题总结
- volley(2)——自定义request
- 求出0~999之间的所有“水仙花数”并输出
- 对象在方法中进行连续的传递 —— 士兵开枪练习
- swift开发的那些应用
- Android中dp、sp、px的转换和区别。
- MySQL学习笔记(三):关键词
- RSA算法原理
- Spring <context:annotation-config/> 解说
- Volley(1)——基本使用
- Java对文件的随机读写以及压缩处理操作
- 大型网站之分布式会话管理
- python os相关操作
- UVA-127 "Accordian" Patience (模拟)
- LeetCode OJ:Happy Number(欢乐数)
- Python处理JSON
- Android QQ、微信聊天消息界面设计原理与实现
- 数据库 SQL
- 输出 和*组成的菱形
- 使用VS2010建立一个简单的DLL(动态链接库)实例