var buildTree = function(preorder, inorder) {
let l1 = 0, l2 = 0, r1 = preorder.length - 1, r2 = inorder.length - 1;
const dg = (l1, l2, r1, r2) => {
if(l1 > r1)return null;//没有根节点
let root = new TreeNode(preorder[l1]);
let tmp = inorder.findIndex((number) => number === root.val);
root.left = dg(l1 + 1, l2, l1 + tmp - l2, tmp - 1);
root.right = dg(l1 + tmp - l2 + 1, tmp + 1, r1, r2);
return root;//返回根节点
}
return dg(l1, l2, r1, r2);
};
JS 力扣刷题 105. 从前序与中序遍历序列构造二叉树
最新推荐文章于 2022-10-28 09:53:01 发布