Skip to content

Commit 9fb2af3

Browse files
committed
95. 不同的二叉搜索树 II
1 parent 348e1f2 commit 9fb2af3

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.gatsby;
2+
3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
/**
7+
* @ClassName: _95UniqueBinarySearchTreesII
8+
* @Description:
9+
* @author: Gatsby
10+
* @date: 2022/8/4 9:51
11+
*/
12+
13+
public class _95UniqueBinarySearchTreesII {
14+
15+
16+
public List<TreeNode> generateTrees(int n) {
17+
18+
if (n == 0) return new ArrayList<>();
19+
else return generateTrees(1, n);
20+
}
21+
22+
public List<TreeNode> generateTrees(int start, int end) {
23+
List<TreeNode> res = new ArrayList<>();
24+
25+
if (start > end) {
26+
res.add(null);
27+
return res;
28+
}
29+
30+
for (int i = start; i <= end; ++i) {
31+
List<TreeNode> left = generateTrees(start, i - 1);
32+
List<TreeNode> right = generateTrees(i + 1, end);
33+
34+
for (TreeNode l : left) {
35+
for (TreeNode r : right) {
36+
TreeNode node = new TreeNode(i);
37+
node.left = l;
38+
node.right = r;
39+
res.add(node);
40+
}
41+
}
42+
43+
}
44+
return res;
45+
}
46+
}
47+
48+

0 commit comments

Comments
 (0)