输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。
假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
var buildTree = function (arr, brr) {
return f(arr, brr)
function f(arr, brr) {
if (!arr.length) return null;
var value = arr[0]
var root = new TreeNode(value)
if (arr.length === 1) return root;
var index = brr.indexOf(value)
var leftTree2 = brr.slice(0, index)
var rightTree2 = brr.slice(index + 1)
var leftTree1 = arr.slice(1, index + 1)
var rightTree1 = arr.slice(index + 1)
root.left = f(leftTree1, leftTree2)
root.right = f(rightTree1, rightTree2)
return root
}
};