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