剑指 Offer 07. 重建二叉树

84 阅读1分钟

剑指 Offer 07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。

假设输入的前序遍历和中序遍历的结果中都不含重复的数字。

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
    }
};