LeetCode95 Unique Binary Search Trees II
来源:互联网 发布:福州几个打车软件 编辑:程序博客网 时间:2024/06/06 00:10
题目链接:
https://leetcode.com/problems/unique-binary-search-trees-ii/
题目描述:
找出结点个数为n的所有二叉查找树。结点的val与1~n一一对应。
上次那道题是找出多少个就行了,T-T这次这个是要把找出来的树全部展示出来。
题目分析:
卡了好久,确实不会做,最后看了别人的代码。
http://www.2cto.com/kf/201305/215967.html
与前面那道题还是有相似之处的。从1~n依次选为根结点。
以i为根结点的树,其左子树由[1,i-1]构成,其右子树由[i+1,n]构成。
以i为根结点的树的种数等于其左子树的种数乘右子树的种数。
vector<TreeNode*> leftTrees代表左子树vector<TreeNode*> rightTrees代表右子树
递归思想,依次选择根结点,对左右子序列再分别建树。
代码:
class Solution {public: vector<TreeNode*> getAllTrees(int beg,int end){ vector<TreeNode*> result; if(beg>end){ result.push_back(NULL); return result; } else{ for(int i=beg;i<=end;i++){//依次选择根结点 vector<TreeNode*> leftTrees=getAllTrees(beg,i-1); vector<TreeNode*> rightTrees=getAllTrees(i+1,end);//对左右子序列再分别建树 for(int j=0;j<leftTrees.size();j++){ for(int k=0;k<rightTrees.size();k++){ //选择以i为根结点的树的个数等于其左右子树个数的乘积 TreeNode* root=new TreeNode(i); root->left=leftTrees[j]; root->right=rightTrees[k]; result.push_back(root); } } } } return result; } vector<TreeNode*> generateTrees(int n) { vector<TreeNode*> result; if(n<=0){ return result; } return getAllTrees(1,n); }};
0 0
- LeetCode95:Unique Binary Search Trees II
- LeetCode95 Unique Binary Search Trees II
- LeetCode95—Unique Binary Search Trees II
- leetcode95~Unique Binary Search Trees II
- leetcode95-Unique Binary Search Trees II(输出所有可能的BST)
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees (& II)
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- ubuntu12.04解决ssh连不上
- 线性拟合——离群点outliers的处理
- lcp+dp Codeforces611D New Year and Ancient Prophecy
- 2016 新年新气象
- install rpmbuild on rhel/fedora
- LeetCode95 Unique Binary Search Trees II
- kvm raw qcow2 example
- 如何区分控制器的上一个控制器
- 微软ping程序源代码完整版
- maven for package--system error solution
- ubuntu /etc/profile和/etc/environment的比较
- 《苏东坡传》读后感
- forin用法
- IOS学习日志(Controller)1.2