LeetCode 95: Unique Binary Search Trees II
来源:互联网 发布:什么电视软件好 编辑:程序博客网 时间:2024/05/17 09:40
Difficulty: 4
Frequency: 1
Problem:
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
Solution:
/** * Definition for binary tree * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function vector<TreeNode *> answer; if (n<=0) { answer.push_back(NULL); return answer; } generateTreesRe(1, n, answer); return answer; } void generateTreesRe(int i_begin, int i_end, vector<TreeNode *> & root) { if (i_begin==i_end) { root.push_back(new TreeNode(i_begin)); return; } if (i_begin>i_end) { root.push_back(NULL); return; } vector<TreeNode *> left; vector<TreeNode *> right; for (int i = i_begin; i<=i_end; i++) { left.clear(); right.clear(); generateTreesRe(i_begin, i-1, left); generateTreesRe(i+1, i_end, right); for (int i_left = 0; i_left<left.size(); i_left++) { for (int i_right = 0; i_right<right.size(); i_right++) { TreeNode * temp = new TreeNode(i); temp->left = left[i_left]; temp->right = right[i_right]; root.push_back(temp); } } } }};
Notes:
Some one use DP and DFS. I will consult others' code.
- LeetCode 95: Unique Binary Search Trees II
- LeetCode(95)Unique Binary Search Trees II
- [leetcode 95] Unique Binary Search Trees II
- leetcode || 95、Unique Binary Search Trees II
- Leetcode 95 Unique Binary Search Trees II
- Leetcode #95 Unique Binary Search Trees II
- LeetCode(95) Unique Binary Search Trees II
- leetcode 95: Unique Binary Search Trees II
- LeetCode 95: Unique Binary Search Trees II
- 【LEETCODE】95-Unique Binary Search Trees II
- LeetCode 95:Unique Binary Search Trees II
- ( Leetcode 95 ) Unique Binary Search Trees II
- LeetCode 95 Unique Binary Search Trees II
- Leetcode 95 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
- 10,标准C
- 理解本真的REST架构风格
- GCC 编译使用动态链接库和静态链接库
- 数据库连接
- LoadRunner中的参数与变量
- LeetCode 95: Unique Binary Search Trees II
- yum安装过程图文详解
- js跨域
- 易语言新手入门教程第五课 - 计次循环命令讲解与实战
- Collection集合
- View 5部署之五:域控制器、用户组及DHCP
- UVa:884 Factorial Factors
- 学习使用 Rest
- 求数组两两之差绝对值最小的值