Construct Binary Tree from Preorder and Inorder 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[]} preorder
11
* @param {number[]} inorder
12
* @return {TreeNode}
13
*/
14
var buildTree = function (preorder, inorder) {
15
let idx = 0;
16
function create(inorderStart, inorderEnd) {
17
if (idx === preorder.length || inorderStart > inorderEnd) {
18
return null;
19
}
20
const root = new TreeNode(preorder[idx]);
21
const mid = inorder.indexOf(preorder[idx]);
22
idx++;
23
root.left = create(inorderStart, mid - 1);
24
root.right = create(mid + 1, inorderEnd);
25
return root;
26
}
27

28
return create(0, inorder.length - 1);
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0