Unique Binary Search Trees II - Leetcode
来源:互联网 发布:封面设计 知乎 编辑:程序博客网 时间:2024/06/15 13:38
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; left = null; right = null; } * } */public class Solution { public List<TreeNode> generateTrees(int n) { return generateTreesHelper(1,n); } private List<TreeNode> generateTreesHelper(int start, int total){ List<TreeNode> subTree = new ArrayList<>(); if(start > total){ subTree.add(null); return subTree; } for(int k=start; k<=total; k++){ List<TreeNode> leftSub = generateTreesHelper(start, k-1); List<TreeNode> rightSub = generateTreesHelper(k+1, total); for(TreeNode l:leftSub){ for(TreeNode r:rightSub){ TreeNode t = new TreeNode(k); t.left = l; t.right = r; subTree.add(t); } } } return subTree; }}
分析:这个是把每一个构造的tree都存到一个List里面。从1开始建造。
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
0 0
- LeetCode: Unique Binary Search Trees II
- LeetCode : Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- leetcode Unique Binary Search Trees II
- [LeetCode]Unique Binary Search Trees II
- [leetcode]Unique Binary Search Trees II
- LeetCode-Unique Binary Search Trees II
- [leetcode] Unique Binary Search Trees II
- LeetCode - Unique Binary Search Trees II
- LeetCode 95: Unique Binary Search Trees II
- Leetcode Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- Leetcode: Unique Binary Search Trees II
- leetcode Unique Binary Search Trees II
- 【Leetcode】Unique Binary Search Trees II
- LeetCode | Unique Binary Search Trees II
- Leetcode Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II
- IOS 使用ASIHttpRequest 或 MKNetworkKit 上传图片到ASP.NET
- 内核的几个内存动态申请函数
- 正则表达式面试题:32fdsfd8fds0fdsf9323k32k中找出3280932332
- 用jsp实现随机验证码
- GLOG的改写
- Unique Binary Search Trees II - Leetcode
- “人脉投资”的10条建议
- 徐汉彬:高并发Web服务的演变——节约系统内存和CPU
- 使用gulp压缩并合并AngularJS代码
- iOS客户端学习-获取设备操作系统版本号
- 8.HCNA-HNTD——数据转发过程
- 陈焕生:深入理解Oracle 的并行执行
- 手势操作各个方法的含义
- 2.Struts2_HelloWorld