之前给大家介绍了java二叉树前序遍历递归和非递归实现的内容,下面就接着给大家介绍java中序遍历递归和非递归实现的内容,一起看看吧。

1、中序遍历

看看访问顺序:左子树-根节点-右子树;

上面图片的访问结果是ADEFGHMZ;

(1)递归实现public void inOrderTraverse(TreeNode root)

{

if (root != null)

{

inOrderTraverse(root.left);

System.out.print(root.val + "->");

inOrderTraverse(root.right);

}

}

(2)非递归实现public void inOrderTraverse(TreeNode root)

{

Stack  stack = new Stack  ();

TreeNode node = root;

while (node != null || !stack.isEmpty())

{

if (node != null)

{

stack.push(node);

node = node.left;

}

else

{

TreeNode tem = stack.pop();

System.out.print(tem.val + "->");

node = tem.right;

}

}

}

以上的实现方式你都清楚了吗?你还想了解更多java程序代码例子吗?请继续来奇Q工具网进行了解吧。

推荐阅读:

中序遍历 java_java二叉树中序遍历递归和非递归实现相关推荐

  1. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)

    分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...

  2. 二叉树的遍历:先序 中序 后序遍历的递归与非递归实现及层序遍历

    二叉树的定义:一种基本的数据结构,是一种每个节点的儿子数目都不多于2的树 树节点的定义如下: // 树(节点)定义 struct TreeNode {int data; // 值TreeNode* l ...

  3. 左神算法:分别用递归和非递归方式实现二叉树先序、中序和后序遍历(Java版)

    本题来自左神<程序员代码面试指南>"分别用递归和非递归方式实现二叉树先序.中序和后序遍历"题目. 题目 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点 ...

  4. 二叉树的层序遍历,前序遍历(递归,非递归),中序遍历(递归,非递归),后续遍历(递归,非递归)

    文章目录 二叉树的层序遍历 前序遍历 递归版本 非递归版本 中序遍历 递归版本 非递归版本 后序遍历 递归版本 非递归版本 二叉树的层序遍历 void printTree(BinaryTree* ar ...

  5. 二叉树的先序,中序,后序,层次的递归及非递归遍历

    昨天写数据结构关于二叉树的几种顺序的递归及非递归遍历的程序,后续遍历有点难.现在把程序给大家参考一下,有些思路参考自:http://www.cnblogs.com/dolphin0520/archiv ...

  6. 二叉树的先中后序递归和非递归遍历(数据结构作业)

    一.设计思想 我创建二叉树是用的先序创建,其中用'#'代表空节点. 1.递归先序遍历 (1)如果当前节点为空节点(用'#'代表空节点),结束当前函数 (2)打印当前节点 (2)递归当前节点的左子树 ( ...

  7. C++实现二叉树 前、中、后序遍历(递归与非递归)非递归实现过程最简洁版本

    本文并非我所写,是复制的该链接中的内容: 最近学习二叉树,想编程实现递归和非递归的实现方式: 递归的方式就不说了,因为大家的递归程序都一样:但是对于非递归的实现方式, 根据这几天的查阅资料已看到差不多 ...

  8. 由序列确定二叉树:前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 代码实现(c语言)

    下面三种序列可以唯一的构造唯一的一棵二叉树: 前序序列和中序序列构造二叉树 后序序列和中序序列构造二叉树 层次遍历序列和中序遍历序列构造二叉树 #include<stdio.h> #inc ...

  9. 二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现

    二叉树,二叉树的归先序遍历,中序遍历,后序遍历,递归和非递归实现 提示:今天开始,系列二叉树的重磅基础知识和大厂高频面试题就要出炉了,咱们慢慢捋清楚! 文章目录 二叉树,二叉树的归先序遍历,中序遍历, ...

  10. 二叉树的前序、中序、后序、递归以及非递归遍历

    定义节点: public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; } } Lee ...

最新文章

  1. 手机的秘密--按几个键就知道
  2. 初学必读:61条面向对象设计的经验原则
  3. php 正则 尖括号,php使用正则表达式提取字符串中尖括号、小括号、中括号、大括号中的字符串...
  4. python小车行驶路线图_基于opencv-Python小车循线学习笔记
  5. 从入门到入土:基于C语言采用TCP协议实现通信功能的程序(仅有代码)
  6. LeetCode 63.不同路径II(动态规划)
  7. 数据结构入门(二)固定容量数组
  8. IT6302 电源后面板的 DB9 接口输出为 TTL 电平,您需要通过附件电平转换后才可连接到 PC 机的串口上
  9. stm32软件模拟i2c通讯读取lm75a温度
  10. 用 MeGUI 压制 DVDrip 入门
  11. 泛微OA 任意文件上传漏洞
  12. 华为hg8240光猫通过LAN网络接入实现路由器功能设置
  13. UVALive 4850 Installations——思维
  14. navigation Bar、toolBar、tabbar 区别
  15. zz:Android 内存优化测试
  16. 汉字转16进制 php,PHP实现中文汉字与16进制编码转换
  17. Linux内核的5个子系统
  18. linux怎么查看当前系统版本号,如何查看当前系统版本的版本号
  19. 远程调用:远程过程调用(RPC)和远程方法调用(RMI)
  20. win7怎么打开微软更新服务器地址,Win7旗舰版上的windows update服务无法启动

热门文章

  1. 东芝Q300 PS3110主控 开卡教程+软件(技术篇)
  2. 学习AngularJs:Directive指令用法
  3. MATAL角度弧度互换
  4. Task ‘bulid‘ not found in root project ‘cas‘. Some candidates are: ‘build‘.
  5. android测试命令,Android Instrument测试命令使用小记
  6. 2017年“达内杯”台州学院第十届大学生程序设计竞赛 非官方题解
  7. Android流媒体播放器
  8. 什么是CS、RS、ESD、EFT
  9. 论文研究结论怎么写?
  10. 少儿编程家长一定要看看这些值得参加的青少年专业权威赛考