题解 | #重建二叉树#
重建二叉树
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
};
#我的实习求职记录#

