题目描述:
标签:树 深度优先搜索 数组
根据一棵树的前序遍历与中序遍历构造二叉树。
注意:
你可以假设树中没有重复的元素。
代码:
思路分析:
总:前序遍历数组第一个元素是根root,根据根的值将中序遍历以根为分割点,分为左子树和右子树,再以左子树和右子树的个数分割前序遍历数组,也分为左子树和右子树,再将中序左子树和前序左子树为一组递归,中序右子树和前序右子树为一组递归。
1、递归结束条件,如果前序遍历数组长度为0,说明为空,返回null;或者取前序遍历数组的第一个元素,rootValue,构造根节点,若前序遍历数组长度为1,说明仅有1个结点,返回该结点
2、循环中序遍历数组,找到分割点delimiterIndex
3、分割中序遍历数组,都是左闭右开区间。左子树的leftInorderBegin&#