if (map.containsKey(N)) return map.get(N); for (int i = 1; i < N; i += 2) { List<TreeNode> left = allPossibleFBT(i); List<TreeNode> right = allPossibleFBT(N - i - 1);
for (TreeNode l : left) { for (TreeNode r : right) { TreeNode root = new TreeNode(0); root.left = l; root.right = r; result.add(root); } } } map.put(N, result); return result; }
近期评论