二叉树遍历(非递归)
来源:互联网 发布:php oa系统源码 编辑:程序博客网 时间:2024/06/04 18:37
package Tree;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Stack;class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}public class TreeTraversal { //后序遍历 public List<Integer> postorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<Integer>(); if(root == null) return res; Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode p = root; while(!stack.isEmpty() || p != null) { if(p != null) { stack.add(p); res.add(p.val); p = p.right; }else { p = stack.pop().left; } } Collections.reverse(res); return res; } //先序遍历 public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<Integer>(); if(root == null) return res; Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode p = root; while(!stack.isEmpty() || p != null) { if(p != null) { stack.add(p); res.add(p.val); p = p.left; }else { p = stack.pop().right; } } return res; } //中序遍历 public List<Integer> inorderTraversal(TreeNode root) { List<Integer> res = new ArrayList<Integer>(); if(root == null) return res; Stack<TreeNode> stack = new Stack<TreeNode>(); TreeNode p = root; while(!stack.isEmpty() || p != null) { if(p != null) { stack.add(p); p = p.left; }else { p = stack.pop(); res.add(p.val); p = p.right; } } return res; } public static void main(String[] args) { // TODO Auto-generated method stub }}
1 0
- 二叉树遍历(递归,非递归)
- 二叉树遍历(递归、非递归、Morris遍历)
- 二叉树遍历(递归、非递归、Morris遍历)
- 二叉树的遍历(递归+非递归+层次遍历)
- 二叉树遍历(非递归)
- 二叉树的遍历(非递归)
- 二叉树遍历(非递归版)
- 二叉树遍历(非递归算法)
- 二叉树遍历(前中后层序/非递归)
- 二叉树遍历算法(非递归)
- 二叉树的遍历(非递归)
- 二叉树的遍历(非递归)
- 二叉树遍历(前中后层序/非递归)
- 遍历二叉树(非递归)
- 二叉树遍历(非递归)
- 二叉树遍历(非递归版)
- 二叉树遍历-前序中序(非递归)
- 二叉树非递归遍历(C++)
- Oracle触发器抛出自定义异常
- vsftp上传文件出现553 Could not create file解决方法
- 第四届河南省ACM 序号互换 进制转换
- Android http请求
- 安卓开发:webapp 打电话,发短信时的代码设置
- 二叉树遍历(非递归)
- CCF CSP试题 201609-2 火车购票
- Servlet进阶API---过滤器Filter
- [BZOJ 1030][JSOI2007]文本生成器(AC自动机+DP)
- Unity四元组Quaternion常用方法
- 漫步数学分析三十七——极大值与极小值
- ubuntu系统及软件安装相关知识
- pyqt开发笔记
- http学习