Unique Binary Search Trees II
2015-08-19 19:31
513 查看
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
public class Solution { public List<TreeNode> generateTrees(int n) { return genTrees(1,n); } public List<TreeNode> genTrees (int start, int end) { List<TreeNode> list = new ArrayList<TreeNode>(); if(start>end) { list.add(null); return list; } if(start == end){ list.add(new TreeNode(start)); return list; } List<TreeNode> left,right; for(int i=start;i<=end;i++) { left = genTrees(start, i-1); right = genTrees(i+1,end); for(TreeNode lnode: left) { for(TreeNode rnode: right) { TreeNode root = new TreeNode(i); root.left = lnode; root.right = rnode; list.add(root); } } } return list; } }
相关文章推荐
- sql server中的TimeStamp时间戳与UniqueIdentifier数据类型
- 在navgationController中添加UISegmentedControl
- EF里Guid类型数据的自增长、时间戳和复杂类型的用法
- ios-UIKit动画
- EF里的默认映射以及如何使用Data Annotations和Fluent API配置数据库的映射
- Unique Paths
- A Beginner’s Guide to Eigenvectors, PCA, Covariance and Entropy
- poj3625 Building Roads(最小生成树)
- Android第三讲——五大布局(UI)
- 设计模式之建造者模式(Builder Pattern)
- Version和Build字段的关系
- Android 中MenuInflater的使用(布局定义菜单
- [LeetCode]Unique Paths II
- [LeetCode]Unique Paths
- StringBuffer和StringBuilder的区别
- UIViewController的详细介绍
- iOS UIScrollView实现无限滚动,思路与代码
- iOS:UITextField中文输入法输入时对字符长度的限制
- 将webkit内核封装为duilib的浏览器控件
- 分享个Duilib中基于wke的浏览器控件