【java算法】二叉树遍历、求叶子数--用递归的方法
来源:互联网 发布:美国黑人解放知乎 编辑:程序博客网 时间:2024/05/17 00:14
二叉树三种递归遍历方法,用递归的方法。
遍历结果如下
前序遍历的结果是:1 2 3 4 5 6 中序遍历的结果是:3 2 4 1 6 5 后序遍历的结果是:3 4 2 6 5 1
<pre name="code" class="java">/** * 二叉树三种递归遍历方法 * @author fengkun * */public class BinaryTree_Three_Traversal {//前序遍历public static void prTraversal(Node node){if (node!=null) {System.out.print(node.Value+" ");prTraversal(node.left);prTraversal(node.right);}}//中序遍历public static void midTraversal(Node node){if (node!=null) {midTraversal(node.left);System.out.print(node.Value+" ");midTraversal(node.right);}}//后序遍历public static void behTraversal(Node node){if (node!=null) {behTraversal(node.left);behTraversal(node.right);System.out.print(node.Value+" ");}}//求总的叶子数public static int countleaf(Node n1){int i;if(n1==null){i=0;}else if(n1.left==null&&n1.right==null){i=1;}else i=countleaf(n1.left)+countleaf(n1.right);return i;}public static void main(String[] args){Node n1 = new Node(1);Node n2 = new Node(2);Node n3 = new Node(3);Node n4 = new Node(4);Node n5 = new Node(5);Node n6 = new Node(6);//构建二叉树n1.left = n2;n1.right = n5;n2.left = n3;n2.right = n4;n5.left = n6;System.out.print("前序遍历的结果是:");prTraversal(n1);System.out.print("中序遍历的结果是:");midTraversal(n1);System.out.print("后序遍历的结果是:");behTraversal(n1);System.out.print("该树的叶子节点是"+countleaf(n1));}}
参考《算法与数据结构(Java语言描述)》P131
0 0
- 【java算法】二叉树遍历、求叶子数--用递归的方法
- Java二叉树的递归,非递归遍历,高度,节点数,叶子节点数
- Java二叉树的递归,非递归遍历,高度,节点数,叶子节点数
- 二叉树的基本操作(创建、递归和非递归遍历、求深度、求叶子数)
- 递归遍历 二叉树 求高度 和 节点数 和 叶子节点数
- 二叉树(递归遍历和非递归遍历)(递归求树的高度以及叶子节点数和拷贝树)
- 【算法导论】求二叉树的叶子数和深度
- 二叉树模板 先中后序遍历,非递归算法,层次遍历,叶子结点数,深度
- java语言实现的二叉树的各种操作(包括递归与非递归遍历二叉树,求二叉树的高度,节点总数,叶子节点等)
- 求二叉树的叶子结点数
- 求二叉树的叶子数
- (1)建立二叉树的二叉链表。 (2)写出对用二叉链表存储的二叉树进行先序、中序和后序遍历的递归和非递归算法。 (3)写出对用二叉链表存储的二叉树进行层次遍历算法。 (4)求二叉树的所有叶子及结点总数。
- 二叉树求叶子数
- 树与图的应用:二叉树的构造、遍历和求叶子数和高度
- 二叉树的操作:创建、遍历、求树的深度、叶子结点数
- 二叉树的字符串创建和遍历,求深度,叶子节点数
- 不使用递归和堆栈,遍历二叉树所有叶子节点的算法
- 求二叉树的最大叶子节点距离(递归)
- available()方法的使用总结
- 在kali linux206-01版本上安装vmtools一直不能用
- happens-before
- 两个类A和B,A创建的对象可以计算两个整数的最大公约数,B创建的对象可以求最好公倍数,B类中成员变量是A类声明对象
- HDU 1087
- 【java算法】二叉树遍历、求叶子数--用递归的方法
- CC2541 AirSync(5)——登录包
- 笔记
- Java 中String对象比较方法equals和等号==
- CoordinatorLayout 、FloatingActionButton 、Snackbar、DrawerLayout和NavigationView结合使用demo
- 最小圈基问题
- Method Swizzling、AOP 面向切片编程
- Hibernate缓存
- 一个伟大的发现,装X一下。笔记本win7系统64位机器运行unity 时,屏幕模糊解决办法