Skip to content

Commit 40d9756

Browse files
committed
Java solution 95
1 parent c5444b8 commit 40d9756

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import java.util.ArrayList;
2+
import java.util.List;
3+
4+
/**
5+
* Created by drfish on 27/05/2017.
6+
*/
7+
public class _095UniqueBinarySearchTreesII {
8+
public List<TreeNode> generateTrees(int n) {
9+
List<TreeNode> result = genTrees(1, n);
10+
if (result.get(0) == null) {
11+
return new ArrayList<>();
12+
} else {
13+
return result;
14+
}
15+
}
16+
17+
private List<TreeNode> genTrees(int start, int end) {
18+
List<TreeNode> result = new ArrayList<>();
19+
if (start > end) {
20+
result.add(null);
21+
}
22+
for (int i = start; i <= end; i++) {
23+
List<TreeNode> leftTrees = genTrees(start, i - 1);
24+
List<TreeNode> rightTrees = genTrees(i + 1, end);
25+
for (TreeNode leftTree : leftTrees) {
26+
for (TreeNode rightTree : rightTrees) {
27+
TreeNode root = new TreeNode(i);
28+
root.left = leftTree;
29+
root.right = rightTree;
30+
result.add(root);
31+
}
32+
}
33+
}
34+
return result;
35+
}
36+
}

0 commit comments

Comments
 (0)