二叉树先序遍历和中序遍历的非递归算法
来源:互联网 发布:淘宝卖家怎么查访客 编辑:程序博客网 时间:2024/05/18 22:42
二叉树的递归遍历算法很简单,而非递归遍历算法中的先序和中序遍历相比于后序遍历更简单一点,在这先实现先序和中序遍历的非递归算法。
先序遍历代码如下:
public static void preOrder(TreeNode root) {TreeNode current = root;Stack<TreeNode> stack = new Stack<TreeNode>();while(current!=null || !stack.isEmpty()) {if(current!=null) {System.out.println(current.val);stack.push(current);current = current.left;}else {current = stack.pop();current = current.right;}}}
中序遍历代码如下:
public static void inOrder(TreeNode root) {TreeNode current = root;Stack<TreeNode> stack = new Stack<TreeNode>();while(current!=null || !stack.isEmpty()) {if(current!=null) {stack.push(current);current = current.left;}else {current = stack.pop();System.out.println(current.val);current = current.right;}}}
对比先序遍历和中序遍历,我们可以发现,这两者之间的本质区别在于,先序遍历是入栈之前先访问,而中序遍历是出栈的时候才访问。就代码上的区别来看,不过是把if中push之前的System.out.println(current.val)挪到了else语句块中的pop之后。
0 0
- 二叉树前序遍历和中序遍历 非递归算法
- 二叉树先序遍历和中序遍历的非递归算法
- 二叉树先序、中序、后序三种遍历的非递归算法
- 二叉树先序、中序、后序三种遍历的非递归算法
- 二叉树先序、中序、后序三种遍历的非递归算法
- 二叉树的前序遍历、中序遍历和后序遍历的递归和非递归算法
- 二叉树先序遍历,中序遍历和后序遍历的非递归实现
- 二叉树先序遍历的非递归算法
- 二叉树的中序遍历的非递归算法
- 中序遍历二叉树的非递归算法
- 二叉树的中序遍历(非递归算法)
- 二叉树前序、中序、后序三种遍历的非递归算法
- 建立二叉树,实现二叉树的先序遍历、中序和后序遍历的非递归算法
- 二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)
- 二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)
- 二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)
- 二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)
- 二叉树遍历算法集合(前中后序遍历的递归和非递归算法,层序遍历算法)
- Oracle数据库--实用操作(3) PL/SQL
- 求两个整数之间的汉明距离---Salem
- 【综述】3D智能数字化与3D打印:"中国制造"向"中国智造"转变的机遇
- 蓝桥杯第六题,也是全排列。
- java中“==”的使用
- 二叉树先序遍历和中序遍历的非递归算法
- hi3531 uboot phy调试总结
- SSH免密登录的配置
- URLEncoder.encode(oldname,"UTF-8")在firefox中无效
- 【HDU 5224】【水题】Tom and paper
- C++ 虚函数
- listview更新数据时报异常
- AndroidStudio部署项目时出现错误:Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- 设计模式-建造者模式