File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments