http://oj.leetcode.com/problems/unique-binary-search-trees-ii/

一题要求得出所有树的种类数,二题要求得出所有树。

在一题的基础上修改代码,还是要提前想清楚再写。

#include <iostream>
#include <vector>
using namespace std; struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
}; class Solution {
public:
vector<TreeNode *> fun(int start,int end )
{
vector<TreeNode *> ansTemp;
vector<TreeNode *> ansTemp2;
vector<TreeNode *> ansTemp3; ansTemp.clear();
if(start>end)
{
ansTemp.push_back(NULL);
return ansTemp;
}
if(start == end)
{
TreeNode *mid = new TreeNode(start);
ansTemp.push_back(mid);
return ansTemp;
} for(int i=start;i<=end;i++)//枚举的中间位置
{
ansTemp2 = fun(start,i-);
ansTemp3 = fun(i+,end); if(ansTemp2.size()!=&&ansTemp3.size()!=)
for(int j = ;j<ansTemp2.size();j++)
{
for(int k = ;k<ansTemp3.size();k++)
{
TreeNode * root = new TreeNode();
root->val = i;
root->left = ansTemp2[j];
root->right = ansTemp3[k];
ansTemp.push_back(root);
}
}
else if(ansTemp2.size()!=&&ansTemp3.size()==)
for(int j = ;j<ansTemp2.size();j++)
{
TreeNode * root = new TreeNode();
root->val = i;
root->left = ansTemp2[j];
root->right = NULL;
ansTemp.push_back(root);
}
else if(ansTemp2.size()==&&ansTemp3.size()!=)
for(int k = ;k<ansTemp3.size();k++)
{
TreeNode * root = new TreeNode();
root->val = i;
root->left = NULL;
root->right = ansTemp3[k];
ansTemp.push_back(root);
}
else
{
TreeNode * root = new TreeNode(i);
ansTemp.push_back(root);
} } return ansTemp;
} vector<TreeNode *> generateTrees(int n) {
// IMPORTANT: Please reset any member data you declared, as
// the same Solution instance will be reused for each test case.
vector<TreeNode *> ans;
ans.clear();
ans = fun(,n);
return ans;
}
}; int main()
{
Solution my;
my.generateTrees();
return ;
}

亲爱的,加油。

最新文章

  1. HTML学习
  2. 招聘.NET开发人员(截止于2015-06-15)
  3. linux 安装后
  4. CSS常用样式及示例
  5. url的路径设置问题
  6. Windows Azure HandBook (5) Azure混合云解决方案
  7. MariaDB Galera Cluster 部署(如何快速部署MariaDB集群)
  8. Java基础知识强化之网络编程笔记16:Android网络通信之 使用Http的Get方式读取网络数据(基于HTTP通信技术)
  9. Redis教程02——管道(Pipelining)
  10. Flume 1.4.0 User Guide
  11. Ubuntu配置OpenGL环境
  12. Jquery获得 selection的text 和 option值
  13. typedef和define具体的详细区别
  14. 阿里巴巴JAVA开发手册
  15. 微信小程序区分点击,长按事件
  16. Spring定义事物通知tx:advice
  17. Eclipse 02: 安装SVN插件
  18. php协程
  19. 067 Flume协作框架
  20. 如何轻松干掉svd(矩阵奇异值分解),用代码说话

热门文章

  1. PostgreSQL学习(1)-- 安装pageinspect extension
  2. 理解JWT的使用场景和优劣
  3. Ubuntux下简单设置vim
  4. Vue表单输入绑定
  5. 记一次header跨域与cookie共享
  6. 【mac】【php】mac php开机重启
  7. python3与python2的编码问题
  8. 天气API接口的使用
  9. chrome无界面模式headless配置
  10. xcode8.1 autolayout 找不到 Update Frames 按钮