95. Unique Binary Search Trees II
来源:互联网 发布:京东商城商品分类sql 编辑:程序博客网 时间:2024/05/22 10:12
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<TreeNode> generateTrees(int n) {
List<TreeNode> res=new ArrayList<TreeNode>();
if(n==0){
return res;
}
res=subTrees(1,n);
return res;
}
public List<TreeNode> subTrees(int start,int end){
List<TreeNode> listTree=new ArrayList<TreeNode>(); //每一次调用这个函数都会新创建一个list,保存子树,包括左子树和右子树
List<TreeNode> leftTree;
List<TreeNode> rightTree;
if(start>end){
listTree.add(null);//为子树添加节点,与循环体中的listTree不是一个
return listTree;
}
if(start==end){
listTree.add(new TreeNode(start));//为子树添加节点
return listTree;
}
for(int i=start;i<=end;i++){
leftTree=subTrees(start,i-1);
rightTree=subTrees(i+1,end);
for(TreeNode lnode:leftTree){
for(TreeNode rnode:rightTree){
TreeNode root=new TreeNode(i);
root.left=lnode;
root.right=rnode;
listTree.add(root); //list存的是子树的根节点
}
}
}
return listTree;
}
}
//整体结构 一个list保存树的根节点,根节点的左右指针(left和right)指向左右list,分别保存左右子树的根节点
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public List<TreeNode> generateTrees(int n) {
List<TreeNode> res=new ArrayList<TreeNode>();
if(n==0){
return res;
}
res=subTrees(1,n);
return res;
}
public List<TreeNode> subTrees(int start,int end){
List<TreeNode> listTree=new ArrayList<TreeNode>(); //每一次调用这个函数都会新创建一个list,保存子树,包括左子树和右子树
List<TreeNode> leftTree;
List<TreeNode> rightTree;
if(start>end){
listTree.add(null);//为子树添加节点,与循环体中的listTree不是一个
return listTree;
}
if(start==end){
listTree.add(new TreeNode(start));//为子树添加节点
return listTree;
}
for(int i=start;i<=end;i++){
leftTree=subTrees(start,i-1);
rightTree=subTrees(i+1,end);
for(TreeNode lnode:leftTree){
for(TreeNode rnode:rightTree){
TreeNode root=new TreeNode(i);
root.left=lnode;
root.right=rnode;
listTree.add(root); //list存的是子树的根节点
}
}
}
return listTree;
}
}
//整体结构 一个list保存树的根节点,根节点的左右指针(left和right)指向左右list,分别保存左右子树的根节点
阅读全文
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
- 95. Unique Binary Search Trees II LeetCode
- ***LeetCode 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II
- Leetcode 95. Unique Binary Search Trees II
- 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 95. Unique Binary Search Trees II
- 95. Unique Binary Search Trees II
- unity3D 多人游戏 添加多个角色预制体
- 山东教师教育网研修平台-确认信息
- shell expect的简单用法
- AES加密算法
- zookeeper做成服务,开机启动
- 95. Unique Binary Search Trees II
- dll 内获取路径
- idea 插件推荐
- js 中使if条件成立的并不只有true
- SpringBoot使用profile配置不同环境配置生效
- 深度学习超参数简单理解------>learning rate,weight decay和momentum
- 4.新华三一面
- C++11 并发指南三(std::mutex 详解)
- 安卓开发 封装 一个通用 的AlertDialog,亲测好用