C++代码:
vector<TreeNode*>res;
if(n<=0)
{
return res;
}
else
{
res=result(1,n);
return res;
}
}
vector<TreeNode*>result(int begin,int end)
{
vector<TreeNode*>res;
if(begin>end)
{
res.push_back(nullptr);
}
for(int i=begin;i<=end;i++)
{
vector<TreeNode*>left=result(begin,i-1);
vector<TreeNode*>right=result(i+1,end);
for(auto le:left)
{
for(auto ri:right)
{
TreeNode*root=new TreeNode(i);
root->left=le;
root->right=ri;
res.push_back(root);
}
}
}
return res;
}
递归