Construct Binary Tree from Inorder and Postorder Traversal LeetCode solution in JavaScript

1
/**
2
* Definition for a binary tree node.
3
* function TreeNode(val, left, right) {
4
* this.val = (val===undefined ? 0 : val)
5
* this.left = (left===undefined ? null : left)
6
* this.right = (right===undefined ? null : right)
7
* }
8
*/
9
/**
10
* @param {number[]} inorder
11
* @param {number[]} postorder
12
* @return {TreeNode}
13
*/
14
var buildTree = function (inorder, postorder) {
15
let postIndex = postorder.length - 1;
16

17
const dfs = (left, right) => {
18
if (left > right) return null;
19

20
const val = postorder[postIndex--];
21
const mid = inorder.findIndex((e) => e === val);
22
const root = new TreeNode(val);
23

24
root.right = dfs(mid + 1, right);
25
root.left = dfs(left, mid - 1);
26

27
return root;
28
};
29

30
return dfs(0, inorder.length - 1);
31
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0