Skip to content

Commit 3973a39

Browse files
95. Unique Binary Search Trees II (java)
1 parent ea2d436 commit 3973a39

File tree

1 file changed

+26
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)