LeetCode--Unique Binary Search Trees II
来源:互联网 发布:整形网络咨询师好做吗 编辑:程序博客网 时间:2024/05/28 23:20
Given an integer n, generate all structurally unique BST’s (binary search trees) that store values 1…n.
For example,
Given n = 3, your program should return all 5 unique BST’s shown below.
1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \ 2 1 2 3
思路:递归。这道题是上一题的加强版,要求得到具体的树,那么采用递归的方法,求出以k为根节点的树的个数(1<=k<=n),其中左子树小于k,右子树大于k,然后遍历每个节点左子树和右子树,从下到上递归求解二叉搜索树。
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<TreeNode*> generateTrees(int n) { vector<TreeNode*>subTree; if(!n) return subTree; return generate(1,n); } vector<TreeNode*> generate(int start ,int end){ vector<TreeNode*>subTree; if(start>end){ subTree.push_back(NULL); return subTree; } for(int k=start;k<=end;k++){ vector<TreeNode*>leftSubs=generate(start,k-1); vector<TreeNode*>rightSubs=generate(k+1,end); for(int i=0;i<leftSubs.size();i++){ for(int j=0;j<rightSubs.size();j++){ TreeNode *node=new TreeNode(k); node->left=leftSubs[i]; node->right=rightSubs[j]; subTree.push_back(node); } } } return subTree; }};
阅读全文
0 0
- LeetCode: Unique Binary Search Trees II
- LeetCode : Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- leetcode Unique Binary Search Trees II
- [LeetCode]Unique Binary Search Trees II
- [leetcode]Unique Binary Search Trees II
- LeetCode-Unique Binary Search Trees II
- [leetcode] Unique Binary Search Trees II
- LeetCode - Unique Binary Search Trees II
- LeetCode 95: Unique Binary Search Trees II
- Leetcode Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- Leetcode: Unique Binary Search Trees II
- leetcode Unique Binary Search Trees II
- 【Leetcode】Unique Binary Search Trees II
- LeetCode | Unique Binary Search Trees II
- Leetcode Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- 前端面试题小集
- CodeForces
- 阿里云服务器配置连不上tomcat服务器
- Visual Studio控制台程序输出窗口一闪而过的解决方法
- 堆
- LeetCode--Unique Binary Search Trees II
- 大小写字母的转换
- 知识点
- Android --- 常用的系统服务(一)
- NO.3 Mybatis.xml结构介绍
- Http状态码总结大全(200,404,500 etc)
- Win10 64位下用minGW编译64位FFMpeg
- spring-激活profile(java)
- SDNUOJ1099前缀判断(set)