All Possible Full Binary Trees LeetCode solution in JavaScript
1var allPossibleFBT = function (n) {2if (n % 2 == 0) return [];3if (n == 1) return [new TreeNode(0)];4const ans = [];56const generate = (x) => {7if (x == 1) return [new TreeNode(0)];8const ans = [];9for (let l = 1; l <= x - 2; l += 2) {10const left = generate(l);11const right = generate(x - 1 - l);12left.forEach((l) => {13right.forEach((r) => {14const root = new TreeNode(0);15root.left = l;16root.right = r;17ans.push(root);18});19});20}21return ans;22};2324for (let l = 1; l <= n - 2; l += 2) {25const left = generate(l);26const right = generate(n - 1 - l);27left.forEach((l) => {28right.forEach((r) => {29const root = new TreeNode(0);30root.left = l;31root.right = r;32ans.push(root);33});34});35}3637return ans;38};