Leetcode 95. Unique Binary Search Trees II 二叉搜索树2 解题报告
2016-08-26 12:51
525 查看
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); } }
相关文章推荐
- 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(Medium)解题报告
- [Leetcode] 95. Unique Binary Search Trees II 解题报告
- LeetCode 95. Unique Binary Search Trees II(唯一二叉搜索树)
- [LeetCode] 95. Unique Binary Search Trees II 唯一二叉搜索树 II
- LeetCode解题报告—— Reverse Linked List II & Restore IP Addresses & Unique Binary Search Trees II
- Unique Binary Search Trees II [Leetcode 解题报告]
- [leetcode] 95.Unique Binary Search Trees II
- LeetCode-Unique Binary Search Trees-解题报告
- [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 96 Unique Binary Search Trees 解题报告
- [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