小弟想请问这个的时间和空间复杂度
题目是给你一个n
要你把1~n所有可能的Binary Search Tree给列出来
我是用递回(qq)找
每一个递回有三个for loop
第一个for loop是要列出那个范围所有的node
剩下两个是把左边和右边的child node街上去
感恩
public List<TreeNode> generateTrees(int n) {
return qq(1,n);
}
List<TreeNode> qq(int first, int last){
List<TreeNode> res= new ArrayList<TreeNode>();
if(first>last) {
res.add(null);
return res;
}
for(int i=first; i<=last; i++){
List<TreeNode> left=qq(first, i-1);
List<TreeNode> right=qq(i+1, last);
for(TreeNode leftti: left){
for(TreeNode rightti: right){
TreeNode temp= new TreeNode(i);
temp.left=leftti;
temp.right=rightti;
res.add(temp);
}
}
}
return res;
}