4
public List<TreeNode> allPossibleFBT(int n) {5
memo = new ArrayList[n + 1];9
public List<TreeNode> dp(int n) {10
if (n == 0 || n == 2) {11
return new ArrayList<TreeNode>();14
List<TreeNode> temp = new ArrayList<>();15
temp.add(new TreeNode(0));18
List<TreeNode> res = new ArrayList<>();19
for (int i = 1; i < n - 1; i = i + 2) {22
if (memo[i] != null) right = memo[i];24
if (memo[n - 1 - i] != null) left = memo[n - 1 - i];25
else left = dp(n - 1 - i);27
for (TreeNode l : left) {28
for (TreeNode r : right) {29
TreeNode temp = new TreeNode(0);