LeetCode OJ——Unique Binary Search Trees II
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 ;
}
亲爱的,加油。
LeetCode OJ——Unique Binary Search Trees II的更多相关文章
- [LeetCode] 95. Unique Binary Search Trees II(给定一个数字n,返回所有二叉搜索树) ☆☆☆
Unique Binary Search Trees II leetcode java [LeetCode]Unique Binary Search Trees II 异构二叉查找树II Unique ...
- [LeetCode] 95. Unique Binary Search Trees II 唯一二叉搜索树 II
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
- 【leetcode】Unique Binary Search Trees II
Unique Binary Search Trees II Given n, generate all structurally unique BST's (binary search trees) ...
- [leetcode]95. Unique Binary Search Trees II给定节点形成不同BST的集合
Given an integer n, generate all structurally unique BST's (binary search trees) that store values 1 ...
- Java for LeetCode 095 Unique Binary Search Trees II
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
- 【LeetCode】Unique Binary Search Trees II 异构二叉查找树II
本文为大便一箩筐的原创内容,转载请注明出处,谢谢:http://www.cnblogs.com/dbylk/p/4048209.html 原题: Given n, generate all struc ...
- [LeetCode] 95. Unique Binary Search Trees II 独一无二的二叉搜索树之二
Given an integer n, generate all structurally unique BST's (binary search trees) that store values 1 ...
- leetCode 95.Unique Binary Search Trees II (唯一二叉搜索树) 解题思路和方法
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
- 【leetcode】 Unique Binary Search Trees II (middle)☆
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n. For e ...
随机推荐
- [LUOGU] NOIP提高组模拟赛Day1
题外话:以Ingress为题材出的比赛好评,绿军好评 T1 考虑枚举第\(i\)个人作为左边必选的一个人,那左边剩余\(i-1\)个人,选法就是\(2^{i-1}\),也就是可以任意选或不选,右侧剩余 ...
- MySQL查询显示连续的结果
#mysql中 对于查询结果只显示n条连续行的问题# 在领扣上碰到的一个题目:求满足条件的连续3行结果的显示 X city built a new stadium, each day many peo ...
- k8s调度的预选策略及优选函数
scheduler调度过程: Predicate(预选)-->Priority(优选)-->Select(选定)调度方式: 1.节点亲和性调度(NodeAffinity)使用n ...
- Linux常用文档操作命令--2
4.文档压缩与解压操作 在Linux中常见的压缩文件有:*.tar.gz.*.tgz.*.gz.*.Z.*bz2等.其每种不同的压缩文件对印的压缩和解压命令也不同. *.tar.gz :tar程序打包 ...
- 03IO端口寻址和访问控制方式
1. I/O端口和寻址 CPU 为了访问 I/O 接口控制器或者控制卡上的数据和状态信息,需要首先指定他们的地址.这种地址就称为I/O端口地址或简称端口.通常一个 I/O 控制器包含访问数据的数据端口 ...
- 好久没写了,总结一下lnux常用的命令(基础)
Linux 1.init 0 关机 2.init 6 重启 3.ls 列出当前目录下的文件 4.cd 切换目录 cd - 切换最近使用的两次目录 5.pwd 查看当前所在的路径 (“-”为用户 ...
- 18.Yii2.0框架模型修改记录 和 修改点击量
目录 修改数据 修改点击量 修改数据 上面要 use app\models\Article; //修改 //http://yii.com/?r=home/Edit public function ac ...
- HDU - 5884 Sort (二分答案+贪心)
有n个数字,你需要把这n个数字合成一个数字,每次只能把k个数字合并成一个,花费为这k个数字的和. 给一个最大花费,问不超过这个最大花费的情况下,k的最小值. Sample Input 1 5 25 1 ...
- huu 1251
#include <iostream> #include <cstdio> #include <cstring> #include <string> # ...
- Linux下ioctl函数理解
一. 什么是ioctl ioctl是设备驱动程序中对设备的I/O通道进行管理的函数.所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率.马达的转速等等.它的调用个数如下: i ...