不同的二叉树查找II
来源:互联网 发布:讨鬼传2捏脸数据女 编辑:程序博客网 时间:2024/06/05 15:01
给出n,生成所有由1...n为节点组成的不同的二叉查找树
样例
给出n = 3,生成所有5种不同形态的二叉查找树:
1 3 3 2 1
\ / / / \ \
3 2 1 1 3 2
/ / \ \
样例
给出n = 3,生成所有5种不同形态的二叉查找树:
1 3 3 2 1
\ / / / \ \
3 2 1 1 3 2
/ / \ \
2 1 2 3
import java.util.ArrayList;import java.util.List;import java.util.Scanner;/** * * 给出n,生成所有由1...n为节点组成的不同的二叉查找树样例给出n = 3,生成所有5种不同形态的二叉查找树:1 3 3 2 1 \ / / / \ \ 3 2 1 1 3 2 / / \ \2 1 2 3 * @author Dell * */public class Test164 { public static List<TreeNode> generateTrees(int n) { if(n<0) return null; return createTree(1,n); } public static List<TreeNode> createTree(int start, int end) { List<TreeNode> res=new ArrayList<>(); if(start>end) { res.add(null); return res; } for(int i=start;i<=end;i++) { List<TreeNode> left=createTree(start,i-1); List<TreeNode> right=createTree(i+1,end); for(int j=0;j<left.size();j++) { for(int k=0;k<right.size();k++) { TreeNode root=new TreeNode(i); root.left=left.get(j); root.right=right.get(k); res.add(root); } } } return res; }public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); List<TreeNode> list=null; list=generateTrees(n); System.out.println(list);}}
阅读全文
0 0
- LintCode-不同的二叉查找树 II
- 题目:不同的二叉查找树 II
- 不同的二叉查找树 II
- 不同的二叉查找树 II lintcode
- 不同的二叉树查找II
- 不同的二叉查找树 II -LintCode
- lintcode--不同的二叉查找树II
- 164.Unique Binary Search Trees II-不同的二叉查找树 II(中等题)
- **[Lintcode]Unique Binary Search Trees II 不同的二叉查找树 II
- 不同的二叉查找树
- 不同的二叉查找树
- 不同的二叉查找树
- 不同的二叉查找树
- LintCode-不同的二叉查找树
- 题目:不同的二叉查找树
- lintcode-不同的二叉查找树-163
- LintCode 不同的二叉查找树
- LintCode:不同的二叉查找树
- EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS!
- 安卓RecyclerView的用法
- AsyncTask的一些小细节
- Python中元组,列表,字典的区别
- rh254复习
- 不同的二叉树查找II
- 选择排序算法
- 关于Android的面试题目汇总
- Tomcat Ajax跨域访问
- 找不到arm-none-linux-gnueadi-gcc
- Java设计模式之创建型模式--建造者模式
- vuejs第二天1
- spring的面试题库
- Android最快捷集成Sharesdk短信验证码功能(干货)