题目描述:给定两个整数数组 inorder
和 postorder
,其中 inorder
是二叉树的中序遍历, postorder
是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。
下图是题目试例
二叉树是一种常见的树状结构,其由节点(Node)和边组成。每个节点最多有两个子节点,即左子节点和右字节点。
一个二叉树可以为空(空树),或者由一个根节点和其余节点的左子树和右子树组成。根节点是二二叉树的顶部节点,没有父节点。左子树和右子树分别也是二叉树,并且是独立的,其本身也适用二叉树的规则,也可以为空。
二叉树共有三种遍历方式:前序遍历、中序遍历和后序遍历。
二叉树的前序遍历是,先访问根节点,然后递归的遍历左子树,最后在递归的遍历右子树。其顺序是:根节点 -> 左子树 -> 右子树。其具体的遍历过程是:1.首先检查当前节点是否为空,若为空,结束遍历,不为空继续遍历。 2.访问当前节点。 3递归的遍历左子树。4递归的遍历右子树。在整个前序遍历的过程中持续的循环这四个步骤,直至遍历结束。
二叉树的中序遍历是,首先递归的访问左子树,然后递归的遍历右子树。最后访问根节点。遍历的顺序是:左子树 -> 右子树 -> 根节点。其具体的遍历过程是:1.首先检查当前节点是否为空,若为空,结束遍历,不为空则继续遍历。2.递归地中序遍历左子树。3.访问当前节点。4.递归地遍历右子树。在整个中序遍历地过程中,不断地循环这四个步骤,直到遍历结束。
二叉树的后序遍历中,首先递归的遍历左子树,然后递归的遍历右子树,最后再访问根节点。其遍历的顺序是:左子树 -> 右子树 -> 根节点。其具体的遍历过程是:1.首先检查当前节点是否为空,若为空,结束遍历,不为空继续遍历。2。递归地后序遍历左子树。3.递归地后序遍历右子树。4.访问当前节点。在整个的后序遍历过程中,持续不断的循环这四个步骤,直到遍历结束。
回到上述的题目,即给定两个整数数组 inorder
和 postorder
,其中 inorder
是二叉树的中序遍历, postorder
是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。
那么首先需要知道的是应该如何确定一颗唯一的二叉树呢?
一共由三种方法可以唯一的确定一颗二叉树:1.前序遍历+中序遍历。2.后序遍历&#