二叉树的高度 java 利用递归和层次遍历两种方法
来源:互联网 发布:递推算法求韩信点兵 编辑:程序博客网 时间:2024/04/30 10:39
package edu.lnu.fang.BiTree;import java.util.ArrayList;import java.util.LinkedList;import java.util.List;import java.util.Queue;import edu.lnu.fang.BiTree.BinTreeTra.Node;/** * 求树的高度 * * @author Fangchao 2016年12月4日 */public class BiTreeDepth { /** * 递归方法 * * @param root * @return */ static int btdep(Node root) { if (root == null) { return 0; } int ldep = btdep(root.leftChild); int rdep = btdep(root.rightChild); if (ldep > rdep) { return ldep + 1; } else { return rdep + 1; } } /** * 非递归方法 * 求每层的个数 树的最大宽度 都可以采用这种思想 * @param root * @return */ static int btdep2(Node root) { int front = -1, rear = -1; int last = 0, level = 0; Node[] queue = new Node[100000]; if (root == null) { return 0; } queue[++rear]=root; Node p; while(front<rear){ p=queue[++front]; if(p.leftChild!=null){ queue[++rear]=p.leftChild; } if(p.rightChild!=null){ queue[++rear]=p.rightChild; } if(front==last){ level++; last=rear; } } return level; } public static void main(String[] args) { Node root = BinTreeTra.init(); System.out.println("递归方法 树的高度是" + btdep(root)); System.out.println("递归方法 树的高度是" + btdep2(root)); }}
1 0
- 二叉树的高度 java 利用递归和层次遍历两种方法
- 二叉树的高度 java 利用递归和层次遍历两种方法
- 利用层次遍历非递归求二叉树高度
- 二叉树各种遍历的实现(递归、非递归、层次、高度和节点数目)
- 层次遍历求二叉树的高度(非递归)
- 二叉树层次遍历的两种方法
- 利用非递归方法实现二叉树的层次遍历 .(待完成!!!!!!)
- 二叉树非递归遍历、层次遍历、高度、节点数
- 二叉树的三种非递归遍历和层次遍历
- 层次遍历二叉树的方法(递归,队列,指针)
- 二叉树的非递归层次遍历
- 二叉树遍历(先中后序 递归和非递归+层次遍历)java代码 可直接运行
- 二叉树的遍历(递归+非递归+层次遍历)
- 二叉树递归求高度,非递归求高度,层次遍历
- 非递归层次遍历方法实现二叉树中指定节点的层次数查找
- 二叉树的前序中序后序遍历,非递归遍历 层次遍历
- 二叉树的建立、遍历、深度、高度及层次遍历
- 二叉树的建树、遍历(先序、中序、后序、层次)(递归和非递归)--Java实现
- Android Framework学习——如何加入并编译自定义的模块
- java多线程-04-线程池
- 019 Remove Nth Node From End of List
- 每日一练--抽奖
- android系统级别硬件访问服务程序
- 二叉树的高度 java 利用递归和层次遍历两种方法
- 【集合框架】4. Set容器
- 一元多项式的加减
- mysql 常用命令
- Linux网络编程---I/O复用模型之poll
- 【集合框架】5. Collections类
- android 开发 -- NavigationView和DrawerLayout实现 侧滑栏(Material Design)
- 时间序列分析这件小事(六)--非平稳时间序列与差分
- 基于JQuery 的分页控件