All Possible Full Binary Trees LeetCode solution in JavaScript

1
var allPossibleFBT = function (n) {
2
if (n % 2 == 0) return [];
3
if (n == 1) return [new TreeNode(0)];
4
const ans = [];
5

6
const generate = (x) => {
7
if (x == 1) return [new TreeNode(0)];
8
const ans = [];
9
for (let l = 1; l <= x - 2; l += 2) {
10
const left = generate(l);
11
const right = generate(x - 1 - l);
12
left.forEach((l) => {
13
right.forEach((r) => {
14
const root = new TreeNode(0);
15
root.left = l;
16
root.right = r;
17
ans.push(root);
18
});
19
});
20
}
21
return ans;
22
};
23

24
for (let l = 1; l <= n - 2; l += 2) {
25
const left = generate(l);
26
const right = generate(n - 1 - l);
27
left.forEach((l) => {
28
right.forEach((r) => {
29
const root = new TreeNode(0);
30
root.left = l;
31
root.right = r;
32
ans.push(root);
33
});
34
});
35
}
36

37
return ans;
38
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0