前序中序后序非递归Java版
2018-04-08 17:23
309 查看
前序遍历
中序遍历
后序遍历
public void preOrder(TreeNode root) { LinkedList<TreeNode> stack = new LinkedNode<>(); TreeNode node = root; while(node!=null || !stack.isEmpty()) { if(node!=null) { System.out.println(node.value); stack.push(node); node = node.left; } else { node = stack.pop(); node = node.right; } } }
中序遍历
public void inOrder(TreeNode root){ LinkedNode<TreeNode> stack = new LinkedNode<>(); TreeNode node = root; while(node!=null || !stack.isEmpty()){ if(node!=null){ stack.push(node); node = node.left; }else{ node = stack.pop(); System.out.println(node.value); node = node.right; } } }
后序遍历
public void postOrder(TreeNode root){ Stack<TreeNode> s1 = new Stack(); Stack<TreeNode> s2 = new Stack(); TreeNode node = root; s1.push(node); while(!s1.empty()){ node = s1.pop(); s2.push(node); if(node.left!=null) s1.push(node.left) if(node.right!=null) s1.push(node.right); } while(!s2.empty()){ System.out.println(s2.value); } }
相关文章推荐
- java实现汉诺塔(递归和非递归)
- JAVA:递归和迭代两种方法计算斐波那契数列
- Java实现二叉树遍历(递归,非递归)
- 由Java中toString()方法引发的无意识的递归想到的
- java递归排序
- Java-01背包问题-动态规划-递归和非递归实现
- Java - 递归
- java:递归实现输出目录下所有的文件(列出目录下所有的文件)
- Java基础----递归
- Java 算法基础 -递归
- Java递归删除目录
- java 递归生成目录
- java实现树的前序,中序,后序的递归和非递归遍历
- java 递归
- 二叉树的三种遍历的递归和非递归的总结(详细,有推导)java
- java递归-小鸡吃米问题
- 算法:二叉树的先(根)序遍历、中(根)序遍历、后(根)序遍历(递归及压栈出栈实现的非递归方式)的java代码实现
- java 递归(字符串、数字)例子
- java里递归和迭代
- leetcode 77. Combinations-排列|递归|非递归|Java|Python