本文用于整理二叉树的 3 种常见遍历方式:前序遍历、中序遍历、后序遍历。
本文主要详细讲解非递归的方式,并结合图进行详细讲解。
希望每一位小伙伴可以真正的理解二叉树的遍历流程,让我们开始吧!
准备工作
本文主要是为了重新梳理二叉树的非递归遍历,所以基本的遍历可以参考下面的文章:
2020年1月23日大约 12 分钟
本文用于整理二叉树的 3 种常见遍历方式:前序遍历、中序遍历、后序遍历。
本文主要详细讲解非递归的方式,并结合图进行详细讲解。
希望每一位小伙伴可以真正的理解二叉树的遍历流程,让我们开始吧!
本文主要是为了重新梳理二叉树的非递归遍历,所以基本的遍历可以参考下面的文章:
本文用于整理二叉树的 4 种遍历方式:前序遍历、中序遍历、后序遍历、层序遍历。
并且使用递归和非递归两种方式。
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode() {}
public TreeNode(int val) { this.val = val; }
public TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
}
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。
例如,给出
前序遍历 preorder = [3,9,20,15,7]
中序遍历 inorder = [9,3,15,20,7]
返回如下的二叉树:
3
/ \
9 20
/ \
15 7