LeetCode | Unique Binary Search Trees II
来源:互联网 发布:自创网页软件 编辑:程序博客网 时间:2024/06/07 13:31
原文地址:http://blog.csdn.net/lanxu_yy/article/details/17504837
题目:
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
confused what "{1,#,2,3}"
means? > read more on how binary tree is serialized on OJ.
思路:
类似http://blog.csdn.net/lanxu_yy/article/details/17504123,找到一个数作为根结点,剩余的数分别划入左子树或者右子树。代码:
- /**
- * 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) {
- 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;
- }
- };
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
- JSP程序设计基础细节总结
- 已知两点(x1, y1)(x2, y2),求直线ax+by+c=0
- 用Socket实现程序之间的交互(通信)
- BaseAdapter
- xcode6模拟器不显示键盘解决方案
- LeetCode | Unique Binary Search Trees II
- iOS 8 特性和界面
- 浅析AndroidManfest文件的标签
- 快速生成APP的平台
- android开源项目---SlidingMenu环境的搭建与使用
- Foreach与Iterator遍历集合注意
- 黑马程序员——7k面试题——交通灯管理系统
- android学习之-项目目录结构
- Unable to execute dex: Multiple dex files define Landroid/annotation/SuppressLint;