【树】Unique Binary Search Trees II
2016-01-27 23:39
435 查看
题目:
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.
思路:
找到一个数作为根结点,剩余的数分别划入左子树或者右子树。需设置一个变量来记录左右子树能够生成的所有数。
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
思路:
找到一个数作为根结点,剩余的数分别划入左子树或者右子树。需设置一个变量来记录左右子树能够生成的所有数。
/** * Definition for a binary tree node. * function TreeNode(val) { * this.val = val; * this.left = this.right = null; * } */ /** * @param {number} n * @return {TreeNode[]} */ var generateTrees = function(n) { if(n==0){ return []; } return createTrees(1,n); }; function createTrees(start,end){ var results=[]; if(start>end){ results.push(null); return results; } for(var i=start;i<=end;i++){ var left=createTrees(start,i-1); var right=createTrees(i+1,end); for(var j=0;j<left.length;j++){ for(var k=0;k<right.length;k++){ var root=new TreeNode(i); root.left=left[j]; root.right=right[k]; results.push(root); } } } return results; }
相关文章推荐
- iOS---实现在屏幕上实时绘图的简单效果---CAShaperLayer和UIBezierPath的简单运用
- UICollectionView自定义布局类
- poj1679 The Unique MST
- 初次体验完美easy ui 1.4.4
- 屏幕适配
- UI拉伸图片和获取字符串的的size
- Customize UIView &UITextField
- UITableView的数据源设置和简单介绍
- congruent matrix
- iOS学习之路-图片轮播(UIScrollerView)
- Proteus下对Arduino进行仿真
- Java [Leetcode 225]Implement Stack using Queues
- UIScrollViewAndUIPageController结合使用
- UI控件初始化的调用方法。
- Flex Builder cannot locate the required debug version of the Flash Player problem
- HDOJ1159 - Common Subsequence
- iOS UIView类扩展,直接访问属性 —— HERO博客
- HDOJ4908 - BestCoder Sequence
- UVA 11235 Frequent values RMQ
- UISlider的基本使用方法