- 题目描述
给定一个整数 n,生成所有由 1 … n 为节点所组成的二叉搜索树。
方法:递归 - c++代码
vector<TreeNode*> solve(int s,int e){
vector<TreeNode*> re;
if(s>e) re.push_back(nullptr);
for(int i=s;i<=e;i++){
for(auto l:solve(s,i-1)){
for(auto r:solve(i+1,e)){
TreeNode* t=new TreeNode(i);
t->left=l;t->right=r;
re.push_back(t);
}
}
}
return re;
}
vector<TreeNode*> generateTrees(int n) {
vector<TreeNode*> re;
if(n==0) return re;
return solve(1,n);
}
题目链接
https://leetcode-cn.com/problems/unique-binary-search-trees-ii/