LeetCode 95. Unique Binary Search Trees II
来源:互联网 发布:windows 10 蓝牙 丢失 编辑:程序博客网 时间:2024/06/05 06:05
Given an integer 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. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public List<TreeNode> generateTrees(int n) { if(n<=0){ return new ArrayList<TreeNode>(); }else{ return helper(1,n); } } public List<TreeNode> helper(int start,int end){ List<TreeNode> subtree=new ArrayList<TreeNode>(); if(start>end){ TreeNode p=null; subtree.add(p); }else{ //i是根节点 for(int i=start;i<=end;i++){ //从start到i-1-start可以产生多少个左子树 //从i+1到end可以产生多少个右子树 List<TreeNode> leftTree=helper(start,i-1); List<TreeNode> rightTree=helper(i+1,end); //以i为根节点的子树个数等于左子树的个数乘以右子树的个数 //将多有可能的子树与根节点相连 for(int j1=0;j1<leftTree.size();j1++){ for(int j2=0;j2<rightTree.size();j2++){ TreeNode p = new TreeNode(i); p.left=leftTree.get(j1); p.right=rightTree.get(j2); subtree.add(p); } } } } return subtree; }}
0 0
- [LeetCode]95.Unique Binary Search Trees II
- [Leetcode] 95. Unique Binary Search Trees II
- LeetCode --- 95. Unique Binary Search Trees II
- [leetcode] 95.Unique Binary Search Trees II
- [leetcode] 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II LeetCode
- ***LeetCode 95. Unique Binary Search Trees II
- Leetcode 95. Unique Binary Search Trees II
- LeetCode *** 95. Unique Binary Search Trees II
- 【LeetCode】95. Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [leetcode]95. Unique Binary Search Trees II
- [leetcode]95. Unique Binary Search Trees II
- [LeetCode] 95. Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [leetcode] 95. Unique Binary Search Trees II
- Leetcode-95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II ,leetcode
- PAT 1003 Emergency(单源最短路径+Dijkstra)
- Longest Common Prefix
- Android开发环境搭建
- 不要62(数位dp)
- 【学习笔记20】java面向对象-权限修饰符、模板模式
- LeetCode 95. Unique Binary Search Trees II
- 乾隆会判阿尔法狗死刑吗 ——浅谈当前人工智能的技术进化
- OpenGL之显示列表
- Exception in thread "main" java.lang.UnsupportedClassVersionError
- vector深入剖析
- PHP第二种特殊类型—空类型
- 字符逆序
- mybatis使用resultMap实现多对多查询 (需求:商品信息和订单明细有多对多的关系)
- Go 语言常量定义与<<(左移)、>>(右移)和ioto的使用