【leetcode】Unique Binary Search Trees II
来源:互联网 发布:一淘网和淘宝什么关系 编辑:程序博客网 时间:2024/06/06 22:41
From: https://leetcode.com/problems/unique-binary-search-trees-ii/
Given 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
/** * 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) { return createTree(1,n); } vector<TreeNode *> createTree(int start, int end) { vector<TreeNode *> results; if(start > end) {results.push_back(NULL);return results;} for(int k=start; k<=end; k++) { vector<TreeNode *> left = createTree(start, k-1); vector<TreeNode *> right = createTree(k+1, end); for(int i=0; i<left.size(); i++) { for(int j=0; j<right.size(); j++) { TreeNode * root = new TreeNode(k); root->left = left[i]; root->right = right[j]; results.push_back(root); } } } return results; }};
public List<TreeNode> generateTrees(int n) {return construct(1, n);}private List<TreeNode> construct(int start, int end) {List<TreeNode> ans = new ArrayList<TreeNode>();if (start > end) {ans.add(null);return ans;}for (int k = start; k <= end; ++k) {List<TreeNode> left = construct(start, k - 1);List<TreeNode> right = construct(k + 1, end);for (int i = 0; i < left.size(); ++i) {for (int j = 0; j < right.size(); ++j) {TreeNode root = new TreeNode(k);root.left = left.get(i);root.right = right.get(j);ans.add(root);}}}return ans; }
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
- Oracle OCP笔记(25)数据库的可恢复性配置
- vim 的全角标点不对
- 装饰者模式——探索之旅
- 集群性能测试实验原始数据
- 自定义listview分割线的颜色和高度(兼容任何版本)
- 【leetcode】Unique Binary Search Trees II
- HDU 5274(树链剖分)
- ubuntu 光盘进入root
- apache基本vhost配置-403问题的处理
- 正则表达式
- [LeetCode]91.Decode Ways
- UML简单介绍(二十)——RUP的软件工程模式介绍(上)
- javascript简单时间轴
- SAE如何绑定域名到子目录