zoukankan      html  css  js  c++  java
  • 95. Unique Binary Search Trees II

        /*
         * 95. Unique Binary Search Trees II
         * 2016-5-14 By Mingyang
         * 分成两个函数来写,另外一个函数写满起点到终点
         * 这个题目自己写的代码很有收获
         * 1.最开始的判断n<1必须加上,不然会报错,Input:0 Output:[[]] Expected:[]
         * 2.if (start > end) 
         *    {list.add(null);
         *            return list;
         * 这步很重要,最关键的串联一步,如果没有那就返回null,直接串联
         */
        public List<TreeNode> generateTrees(int n) {
               List<TreeNode> res=new ArrayList<TreeNode>();
               if(n<1)//这不能少
                return res;
            return generateTrees(1, n);
        }
        public List<TreeNode> generateTrees(int start, int end) {
            List<TreeNode> list = new LinkedList<TreeNode>();
            if (start > end) {
            //最开始我也错了,直接返回list,必须返回null,不然人家才能串联起来,node.left=null;
                list.add(null);
                return list;
            }
            for (int i = start; i <= end; i++) {
                List<TreeNode> lefts = generateTrees(start, i - 1);//以i作为根节点,左子树由[1,i-1]构成
                List<TreeNode> rights = generateTrees(i + 1, end);//右子树由[i+1, n]构成
                for (TreeNode left : lefts) {//左边和右边分别返回了一个list,每个值就是一个TreeNode,就代表一种可能性
                    for (TreeNode right : rights) {
                        TreeNode node = new TreeNode(i);
                        node.left = left;
                        node.right = right;
                        list.add(node);//存储所有可能行
                    }
                }
            }
            return list;
        }
  • 相关阅读:
    【转载】AB测试结果分析
    【面试】HTTP post请求与get请求的区别
    如何做好接口测试?【转载】
    ContactsUtil 工具类
    接口测试第三课(HTTP协议简介) -- 转载
    接口测试第一课(基础知识篇)
    如果做好测试PM【转载】
    HttpClient发送Get和Post请求
    获取终端ip地址
    接口功能测试策略
  • 原文地址:https://www.cnblogs.com/zmyvszk/p/5496827.html
Copyright © 2011-2022 走看看