「这是我参与11月更文挑战的第18天,活动详情查看:2021最后一次更文挑战」
106. 从中序与后序遍历序列构造二叉树
题目描述
根据一棵树的中序遍历与后序遍历构造二叉树。
注意: 你可以假设树中没有重复的元素。
例如,给出
1 | ini复制代码中序遍历 inorder = [9,3,15,20,7] |
返回如下的二叉树:
1 | markdown复制代码 3 |
解析
递归法
- 步骤:
- 1、判断数组大小是否为0,为0则表示空节点
- 2、不为空,取后序遍历数组的最后一个元素(作为根节点)
- 3、在中序遍历中找到后序遍历的最后一个元素
- 4、切割中序数组,将中序数组分为中序左数组,中序右数组
- 5、切割后序数组,得到后序左数组,后序右数组
- 6、递归处理左区间和右区间
代码
1 | c++复制代码class Solution |
本文转载自: 掘金