题解 | #重建二叉树#
重建二叉树
https://www.nowcoder.com/practice/8a19cbe657394eeaac2f6ea9b0f6fcf6
/* function TreeNode(x) { this.val = x; this.left = null; this.right = null; } */ function reConstructBinaryTree(pre, vin) { // write code here n = pre.length; m = vin.length; if(n === 0 && m === 0) return null; let root = new TreeNode(pre[0]); for(let i=0;i<vin.length;i++){ if(vin[i] === pre[0]){ let leftPre = pre.slice(1,i+1); let leftVin = vin.slice(0,i); root.left = reConstructBinaryTree(leftPre,leftVin); let rightPre = pre.slice(i+1); let rightVin = vin.slice(i+1); root.right = reConstructBinaryTree(rightPre,rightVin); break; } } return root; } module.exports = { reConstructBinaryTree : reConstructBinaryTree };#我的实习求职记录#