var generateTrees = function(n) {
return gtHelper(1, n);
};
function gtHelper(start, end, allTrees) {
const curTrees = []
if (start > end) {
curTrees.push(null);
return curTrees;
}
for (let i = start; i <= end; i++) {
const leftTrees = gtHelper(start, i - 1);
const rightTrees = gtHelper(i + 1, end);
for (let l of leftTrees) {
for (let r of rightTrees) {
const curRoot = new TreeNode(i);
curRoot.left = l;
curRoot.right = r;
curTrees.push(curRoot);
}
}
}
return curTrees
}