树的遍历(前序,中序,后续,栈与递归实现)
来源:互联网 发布:站长工具查询端口 编辑:程序博客网 时间:2024/05/22 12:42
树的定义
public class TreeNode {public TreeNode left;public TreeNode right;public int val;public TreeNode(int val){this.val=val;this.left=null;this.right=null;}}
前序遍历
public void preorderStack(TreeNode root) {Stack<TreeNode> stack=new Stack<>();while(root!=null || !stack.isEmpty()){while(root!=null){stack.push(root);System.out.println(root.val);root=root.left;}root=stack.pop();root=root.right;}}public void preOrder(TreeNode root){if(root!=null){System.out.println(root.val);preOrder(root.left);preOrder(root.right);}}
中序遍历
public void inorderStack(TreeNode root) {Stack<TreeNode> stack=new Stack<>();while(root!=null || !stack.isEmpty()){while(root!=null){stack.push(root);root=root.left;}root=stack.pop();System.out.println(root.val);root=root.right;}}public void inOrder(TreeNode root){if(root!=null){inOrder(root.left);System.out.println(root.val);inOrder(root.right);}}
后序遍历
public void postorderStack(TreeNode root){Stack<TreeNode>stack=new Stack<>();Map<TreeNode, Boolean> map=new HashMap<>();stack.push(root);while(!stack.isEmpty()){TreeNode node=stack.peek();if(node.left!=null && !map.containsKey(node.left)){node=node.left;while(node!=null){if(map.containsKey(node))break;stack.push(node);node=node.left;}continue;}if(node.right!=null && !map.containsKey(node.right)){stack.push(node.right);continue;}TreeNode t=stack.pop();map.put(t, true);System.out.println(t.val);}}public void postOrder(TreeNode root){if(root!=null){postOrder(root.left);postOrder(root.right);System.out.println(root.val);}}
阅读全文
0 0
- 树的遍历(前序,中序,后续,栈与递归实现)
- Java实现树的遍历(前序、中序、后续(递归|非递归)、层次)
- 二叉树遍历,已知前序遍历与中序遍历,求后续遍历 使用java(递归方式)实现
- leetcode | 二叉树的前序遍历、中序遍历、后续遍历的非递归实现
- 二叉树的前序、中序、后续遍历,递归、非递归实现
- 前序遍历 中序遍历 后续遍历的递归与非递归算法
- Java 二叉树的前序、中序、后续遍历 递归和迭代实现
- 二叉树的非递归前序,中序,后续遍历实现
- 二叉树的前序遍历、中序遍历、后续遍历 (包括递归、非递归,共六种)
- 二叉树(一) 先序遍历、中序遍历、后续遍历、层次遍历的递归与非递归实现
- 递归和非递归俩种方法实现二叉树的前序、中序、后续遍历
- 由前序遍历和中序遍历求后续遍历 递归实现
- 二叉树的实现&&递归和非递归方式前序、中序、后续遍历&&发现一个节点中序遍历的下一节点
- JAVA实现二叉树的前、中、后序遍历(递归与非递归)
- 编程实现二叉树的建立,前序遍历,中序遍历和后续遍历
- 前序,中序,后续非递归遍历树的标准算法
- 树的先序遍历、中序遍历、后续遍历的递归与循环详解
- 二叉树非递归遍历(前序,中序,后续遍序)
- 机器学习--PCA主成份分析
- MySQL 数据类型
- cocos Creater学习(一)
- 羊皮卷之七
- 注册列表
- 树的遍历(前序,中序,后续,栈与递归实现)
- 51nod 1060 最复杂的数(反素数)
- 分拆素数和(素数打表)
- G
- MySQL 创建数据表
- i_o_s_t_a_t
- 图像处理4:录像视频保存
- Tensorflow-简单使用
- 按时间给问候语 这样找规律有漏洞吗?