ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 重建二叉树 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 ``` /* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function reConstructBinaryTree(pre, vin) { if (pre.length === 0 || vin.length === 0) { return null } let root = pre[0] let index = vin.indexOf(root) let leftVin = vin.slice(0, index) let rightVin = vin.slice(index + 1) let leftPre = pre.slice(1, index + 1) let rightPre = pre.slice(index + 1) return { val: root, left: reConstructBinaryTree(leftPre, leftVin), right: reConstructBinaryTree(rightPre, rightVin) } } var pre = [1, 2, 4, 7, 3, 5, 6, 8]; var vin = [4, 7, 2, 1, 5, 3, 8, 6]; console.log(reConstructBinaryTree(pre, vin)); ```