Leetcode 95. Unique Binary Search Trees II 二叉搜索树2 解题报告
来源:互联网 发布:linux系统大全 编辑:程序博客网 时间:2024/06/07 10:34
1 解题思想
这道题,是昨天Leet 96的升级版(虽然编号靠前一个,吐槽一个工作人员的奇怪逻辑),昨天的那个只用输出个数,而这个要真实的输出树的结构。
先看下题目的思想,看一下前导代码:
Leetcode 96. Unique Binary Search Trees 二叉搜索树 解题报告
本质上的做法是一样的,上一个只是需要数值相乘就可以,而这个需要做一下链接。
2 原题
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
3 AC解
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } * * http://blog.csdn.net/chilseasai/article/details/50083201 */public class Solution { public List<TreeNode> helper(int start,int end){ List<TreeNode> result = new ArrayList<TreeNode>(); if( start > end){ result.add(null); return result; } /** 这里就是上一篇里所说的,确定两边,然后构造树的,具体原理请参照上一篇 **/ for(int i = start; i <= end; i ++) { List<TreeNode> leftChild = helper(start, i - 1); List<TreeNode> rightChild = helper(i + 1, end); for(TreeNode left : leftChild) { for(TreeNode right : rightChild) { TreeNode root = new TreeNode(i); root.left = left; root.right = right; result.add(root); } } } return result; } public List<TreeNode> generateTrees(int n) { if(n < 1) return new ArrayList<TreeNode>(); return helper(1,n); }}
0 0
- Leetcode 95. Unique Binary Search Trees II 二叉搜索树2 解题报告
- leetCode 95.Unique Binary Search Trees II (唯一二叉搜索树) 解题思路和方法
- [leetcode] 95. Unique Binary Search Trees II 解题报告
- [Leetcode] 95. Unique Binary Search Trees II 解题报告
- Leetcode 96. Unique Binary Search Trees 二叉搜索树 解题报告
- LeetCode(95) Unique Binary Search Trees II解题报告
- Unique Binary Search Trees II [Leetcode 解题报告]
- LeetCode 95. Unique Binary Search Trees II&96. Unique Binary Search Trees--动态规划,二叉树
- LeetCode 95. Unique Binary Search Trees II(唯一二叉搜索树)
- [LeetCode]Unique Binary Search Trees, 解题报告
- LeetCode-Unique Binary Search Trees-解题报告
- leetCode 96.Unique Binary Search Trees (唯一二叉搜索树) 解题思路和方法
- LeetCode | Unique Binary Search Trees II(构建二叉搜索树)
- LeetCode OJ 之 Unique Binary Search Trees II (不同的二叉搜索树 - 二)
- [LeetCode]Unique Binary Search Trees II生成所有二叉搜索树
- LeetCode-95-Unique Binary Search Trees II 二叉树
- leetcode 95. Unique Binary Search Trees II 递归构造所有可能的搜索二叉树BST + 卡特兰数
- [LeetCode]95.Unique Binary Search Trees II
- 第一个hadoop入门程序WordCount
- String format的简单用法
- Flask Web 开发 用户认证_6
- Android自定义饼图TTJPieChart
- android 选择图片 裁剪 Fileprovider
- Leetcode 95. Unique Binary Search Trees II 二叉搜索树2 解题报告
- (五)c52学习之旅-静态数码管
- MKMapView的使用及定位自己当前的位置
- 嵌入式QT configure
- 当数字与字符串遇上‘+’和‘.’该如何处理
- c语言---运算符
- 二维数组中查找
- log4net使用方法(Console)
- JVM内存模型及垃圾回收算法