题目要求:根据一棵树的中序遍历与后序遍历构造二叉树。
思路:408的经典题目,思路和手撕的思路差不多,先从后序中找到根节点,再从中序中找到此节点,然后分割成左右子树,记录一下左右子树的节点个数,再在后序中切割,继续递归处理即可。
按照卡哥的思路,可以分为六步:
1.数组大小为零的话,说明是空节点了。
2.如果不为空,那么取后序数组最后一个元素作为节点元素。
3.在中序中找到此节点,开始分割
4.分割中序数组,分为左右子树
5.分割后续数组,分为左右子树
6.递归
leetcode实战:
代码实现: