yanggengzhen123 / leetcode-group

力扣小组
0 stars 0 forks source link

2022.04.22-第89题-106. 从中序与后序遍历序列构造二叉树 #91

Open icodeish opened 2 years ago

icodeish commented 2 years ago

https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/ 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: image 输入:inorder = [9,3,15,20,7], postorder = [9,15,7,20,3] 输出:[3,9,20,null,null,15,7] 示例 2:

输入:inorder = [-1], postorder = [-1] 输出:[-1]

icodeish commented 2 years ago
var buildTree = function(inorder, postorder) {
    if (!postorder.length) return null;
    const top = postorder.pop();
    const root = new TreeNode(top);
    const topIndex = inorder.indexOf(top);
    root.left = buildTree(inorder.slice(0, topIndex), postorder.slice(0, topIndex));
    root.right = buildTree(inorder.slice(topIndex + 1), postorder.slice(topIndex));
    return root;
};