lintcode-medium-Unique Binary Search Trees II
2016-04-07 12:48
465 查看
Given n, generate all structurally unique BST's (binary search trees) that store values 1...n.
Example
Given n = 3, your program should return all 5 unique BST's shown below.
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 of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */ public class Solution { /** * @paramn n: An integer * @return: A list of root */ public List<TreeNode> generateTrees(int n) { // write your code here return generateTrees(1, n); } public List<TreeNode> generateTrees(int start, int end){ List<TreeNode> res = new ArrayList<TreeNode>(); if(start > end){ res.add(null); return res; } if(start == end){ res.add(new TreeNode(start)); return res; } for(int mid = start; mid <= end; mid++){ List<TreeNode> left = generateTrees(start, mid - 1); List<TreeNode> right = generateTrees(mid + 1, end); for(TreeNode left_child: left){ for(TreeNode right_child: right){ TreeNode root = new TreeNode(mid); root.left = left_child; root.right = right_child; res.add(root); } } } return res; } }
相关文章推荐
- lintcode-medium-Unique Binary Search Trees
- iOS——UIView复习总结
- StringBuffer和StringBuilder的区别
- 解决ADT大量出现"Unexpected value from nativeGetEnabledTags: 0"的问题
- 解决ADT大量出现"Unexpected value from nativeGetEnabledTags: 0"的问题
- 在EXT框架中,使用JS文件设置UEditor文本框,出现新增内容很多,页面变型,不出现滚动条,导致无法进行操作。
- 关于前端页面需要用到特殊的字体,如果UI给的字体语言内码为中文(gb2312),如何解决?
- 微软笔试题4:Buiding in Sandbox
- UILabel 属性
- Lucene 查询中的距离查询(proximity query)
- IOS 开发-UI初级 (二)视图和视图控制器(View,Viewcontroller)
- 学习笔记 - EasyUI官方网站演示
- sectionheadView 跟随UItabview滚动 去掉UItableview headerview黏性
- iOS之UITextField切换焦点
- jd-gui安装
- Android初学习 - android:sharedUserId="android.uid.system" 应用程序获得系统权限
- UITableView 基本使用方法总结
- Cadence中Quickview中没有预览
- NGUI实现滑动翻页效果实例代码
- JMS使用ActiveMQ实现Queue和Topic两种模式