题目:输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
示例:输入:[1,2,3,4,5,6,7] , [3,2,4,1,6,5,7]
返回值:{1,2,5,3,4,6,7}

思路:
1:判断前序或者中序的数组的长度是否为空,空则返回null停止
2:核心节点是前序的第一个节点,为根节点,取出放到temp中
3:找到中序数组中核心节点(根节点)的位置,并保存在index中
4:创建一个根节点,然后递归节点的左右子树

function reConstructBinaryTree(pre, vin)
{
    // write code here
    if(!pre.length || !vin.length) return null
    let temp = pre[0]
    let node = new TreeNode(temp)
    let index = vin.indexOf(temp)
    node.left = reConstructBinaryTree(pre.slice(1,index+1),vin.slice(0,index))
    node.right = reConstructBinaryTree(pre.slice(index+1),vin.slice(index+1))
    return node
}