Unique Binary Search Trees II
来源:互联网 发布:商城域名备案 编辑:程序博客网 时间:2024/04/30 03:41
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 3Analysis: DFS. Select different element in the in-order array as the root of each subtree.
/** * 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 ArrayList<TreeNode> helper(int[] inorder) { ArrayList<TreeNode> res = new ArrayList<TreeNode>(); if(inorder.length == 0) { TreeNode root = null; res.add(root); return res; } for(int i=0; i<inorder.length; i++) { ArrayList<TreeNode> left = helper(Arrays.copyOfRange(inorder, 0, i)); ArrayList<TreeNode> right = helper(Arrays.copyOfRange(inorder, i+1, inorder.length)); for(int j=0; j<left.size(); j++) { for(int k=0; k<right.size(); k++) { TreeNode root = new TreeNode(inorder[i]); root.left = left.get(j); root.right = right.get(k); res.add(root); } } } return res; } public ArrayList<TreeNode> generateTrees(int n) { int[] inorder = new int[n]; for(int i=0; i<n; i++) { inorder[i] = i+1; } return helper(inorder); }}
0 0
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees (& II)
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- Unique Binary Search Trees II
- [Android]调用另一个布局xml文件里面的button,并绑定OnClickListener监听器
- [转载]CString、TCHAR*、char*转换
- java中final关键字的编译问题
- NoSQL研究及选型报告
- 二维数组画图
- Unique Binary Search Trees II
- [转帖]卡尔曼滤波器通俗解释 – Kalman Filter
- Android 版本升级涉及到的数据库数据迁移问题
- 编辑文章 - 博客频道 - CSDN.NET
- JAVA中施用JSONObject对象必备jar
- 移动硬盘一个分区识别不到时候处理
- win7的音量图标不见了
- socket超时setsockopt
- 手机共享电脑Wifi软件网络抓包