Leetcode108: Unique Binary Search Trees II
2015-10-20 10:54
423 查看
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.
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*> createTree(int start, int end) { vector<TreeNode*> res; if(start>end) { res.push_back(NULL); return res; } for(int i = start; i <= end; i++) { vector<TreeNode*> left = createTree(start, i-1); vector<TreeNode*> right = createTree(i+1, end); for(int j = 0; j < left.size(); j++) { for(int k = 0; k < right.size(); k++) { TreeNode* root = new TreeNode(i); root->left = left[j]; root->right = right[k]; res.push_back(root); } } } return res; } vector<TreeNode*> generateTrees(int n) { return createTree(1, n); } };
相关文章推荐
- Version和Build的区别
- NGUI坑之首行缩进
- AndroidUI-TxetView嵌套Html的使用
- UITabbar UINavigationBar
- 【最新API翻译】 Bluetooth--BluetoothAdapter API 翻译
- Qt使用教程之创建Qt Quick项目
- 「8-Queens Problem」皇后问题局部极值启发式搜索方法
- UINavigationItem UINavigationBar 关系分析
- STL学习笔记——序列式容器deque
- 浅谈UIScrollView
- VS2005编译问题LINK : E:/aaa/Debug/aaa.exe not found or not built by the last incremental link; performin
- 开速开发:UIView与XIB关联
- easyui 批量 移除行,
- QT小例子GUI(主)线程与子线程之间的通信
- require.js的用法详解
- 【IOS 开发学习总结-OC-59】UI控件——UIPageControl 与UIPageViewController
- UIAlertView 和 UIAlertController
- iOS开发之UITextField常用属性设置
- UILabel,文字添加下划线,中划线
- UISearchBar和导航栏按钮