Skip to content

Commit f13f2b7

Browse files
Create: 0095-unique-binary-search-trees-ii.java
Signed-off-by: Aliaksei <[email protected]>
1 parent 95f5f74 commit f13f2b7

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
class Solution {
2+
public List<TreeNode> generateTrees(int n) {
3+
return generate(1, n);
4+
}
5+
6+
private List<TreeNode> generate(int left, int right) {
7+
if (left > right) {
8+
List<TreeNode> r = new ArrayList<>();
9+
r.add(null);
10+
return r;
11+
}
12+
13+
List<TreeNode> res = new ArrayList<>();
14+
for (int val = left; val <= right; val++) {
15+
for (TreeNode leftSubtree : generate(left, val - 1)) {
16+
for (TreeNode rightSubtree: generate(val + 1, right)) {
17+
TreeNode root = new TreeNode(val);
18+
root.left = leftSubtree;
19+
root.right = rightSubtree;
20+
res.add(root);
21+
}
22+
}
23+
}
24+
25+
return res;
26+
}
27+
}

0 commit comments

Comments
 (0)