1. //递归中序遍历
  2. public void inorder() {
  3. System.out.print("binaryTree递归中序遍历:");
  4. inorderTraverseRecursion(root);
  5. System.out.println();
  6. }
  7. //层次遍历
  8. public void layerorder() {
  9. System.out.print("binaryTree层次遍历:");
  10. LinkedList<Node<Integer>> queue = new LinkedList<Node<Integer>>();
  11. queue.addLast(root);
  12. Node<Integer> current = null;
  13. while(!queue.isEmpty()) {
  14. current = queue.removeFirst();
  15. if (current.getLeftChild() != null)
  16. queue.addLast(current.getLeftChild());
  17. if (current.getRightChild() != null)
  18. queue.addLast(current.getRightChild());
  19. System.out.print(current.getValue());
  20. }
  21. System.out.println();
  22. }
  23. //获得二叉树深度
  24. public int getDepth() {
  25. return getDepthRecursion(root);
  26. }
  27. private int getDepthRecursion(Node<Integer> node){
  28. if (node == null)
  29. return 0;
  30. int llen = getDepthRecursion(node.getLeftChild());
  31. int rlen = getDepthRecursion(node.getRightChild());
  32. int maxlen = Math.max(llen, rlen);
  33. return maxlen + 1;
  34. }
  35. //递归先序遍历
  36. public void preorder() {
  37. System.out.print("binaryTree递归先序遍历:");
  38. preorderTraverseRecursion(root);
  39. System.out.println();
  40. }

java 二叉树递归遍历算法的更多相关文章

  1. 毕业了-java二叉树层次遍历算法

    /*************************************** * 时间:2017年6月23日 * author:lcy * 内容:二叉树的层次遍历 * 需要借助队列这个数据结构,直 ...

  2. Java 之递归遍历目录

    Java 之递归遍历目录 一.内容 输出指定目录(文件夹)下的所有文件(包括目录)的绝对路径 二.源代码:RecursiveListDirectory.java package cn.com.zfc. ...

  3. 数据结构之二叉树篇卷二 -- 二叉树递归遍历(With Java)

    一.先序递归遍历(Preorder Recursive Traversal) 1.1 算法 首先需要明确的是这里的序是针对 root 节点而言的.故先序即先“访问”根节点,其次“访问”其左右节点. 1 ...

  4. Java - 二叉树递归与非递归

    树的定义具有递归特性,因此用递归来遍历比较符合特性,但是用非递归方式就比较麻烦,主要是递归和栈的转换. import java.util.Stack; /** * @author 李文浩 * @ver ...

  5. java二叉树的遍历(1)

    树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合.它是由n(n>0)个有限节点通过连接它们的边组成一个具有层次关系的集合 节点:上图的圆圈,比如A,B,C等都是表示 ...

  6. MFC CTreeCtrl 递归遍历算法

    递归遍历 void Traverse(HTREEITEM hTree) { if (!hTree) { return; } //Do Something. //Traverse Child Node ...

  7. JAVA二叉树递归构造、二叉树普通遍历及递归遍历

    二叉树类: package com.antis.tree; public class BinaryTree { int data; //根节点数据 BinaryTree left; //左子树 Bin ...

  8. java暴力递归回溯算法

    今天这个问题是我之前一直想解决的,还记得以前第一次上蓝桥杯的课的时候,也就是大一高数期中模拟考试那天,下午去上蓝桥杯课,遇到这道题,当时写了写,根本没有思路,然后就给大一的模拟考试去了.印象深刻啊,一 ...

  9. 【Leetcode】二叉树层遍历算法

    需求: 以层遍历一棵二叉树,二叉树的结点结构如下 struct tree_node{ struct tree_node *lc; struct tree_node *rc; int data; }; ...

随机推荐

  1. UML复习1-2章

    第一章 1.请对SDLC的六个阶段排序 1> 可行性分析 2> 设计 3> 测试 4> 维护 5> 需求分析与说明 6> 编码 A. 1 5 2 6 3 4 B. ...

  2. 最好的 6 个 HTML5 的多媒体播放器

      是 HTML5 中新引入的标签,用来在 Web 网页中嵌入视频播放功能,无需 Flash 和其他嵌入式插件的支持,是浏览器内建的功能,不过  旨在一些高级浏览器中支持,例如 Firefox, Sa ...

  3. fiddle连接终端测试配置

    第一次做app,对app的数据要进行一些数据抓包和数据分析,知道客户端发送到服务器端的过程和逻辑,通过抓包了解和分析出错,前提要先连接fiddle

  4. hdu-3549 Flow Problem---最大流模板题(dinic算法模板)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3549 题目大意: 给有向图,求1-n的最大流 解题思路: 直接套模板,注意有重边 传送门:网络流入门 ...

  5. 漫谈 Clustering (1): k-means

    好久没有写 blog 了,一来是 blog 下线一段时间,而租 DreamHost 的事情又一直没弄好:二来是没有太多时间,天天都跑去实验室.现在主要折腾 Machine Learning 相关的东西 ...

  6. CUDA的软件体系

    CUDA的软件堆栈由以下三层构成:CUDA Library.CUDA runtime API.CUDA driver API,如图所示,CUDA的核心是CUDA C语言,它包含对C语言的最小扩展集和一 ...

  7. 前端小记3——iOS与Android问题

    1.消除transition闪屏 (1)-webkit-transform-style:preserve-3d;  /*设置内嵌的元素在 3D 空间如何呈现:保留 3D*/ (2)-webkit-ba ...

  8. 用@vue/cli发布npm包

    1.环境准备 安装node,npm,@vue/cli 2.初始化项目 用@vue/cli创建新项目 vue create mtest-ui 删除public,main.js,App.vue等无关文件, ...

  9. centos 6 安装VMware Tools

    开启虚拟机的centos系统, 在虚拟机工具栏点击 “虚拟机”=>VMwareTools安装,  centos系统内的桌面会有一个VMware Tools的驱动光驱, 双击打开后,有一个tar. ...

  10. react的redux无状态组件

    Provider功能主要为以下两点: 在原应用组件上包裹一层,使原来整个应用成为Provider的子组件 接收Redux的store作为props,通过context对象传递给子孙组件上的connec ...