zoukankan      html  css  js  c++  java
  • 不同的二叉搜索树&II

    不同的二叉搜索树

    只要求个数,递推根节点分割左右子树即可

    class Solution {
        public int numTrees(int n) {
           int []dp=new int[n+1];
           for(int i=1;i<=n;i++){
               if(i==1||i==2)
                   dp[i]=i;
               else{
                   for(int j=1;j<=i;j++)
                       if(j>1&&j<i)//有左子树和右子树
                           dp[i]+=dp[j-1]*dp[i-j];
                       else if(j==1)//只有右子树
                           dp[i]+=dp[i-j];
                       else
                           dp[i]+=dp[j-1];
               }
           }
           return dp[n];
        }
    }

    不同的二叉搜索树 II

    要求求具体的树,还是同上思想

    /**
     * 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) {
            if(n==0)return new LinkedList<TreeNode>();
            else return generateTrees(1,n);
        }
        public List<TreeNode> generateTrees(int begin,int end){
            List<TreeNode>res=new LinkedList<>();
            if(begin>end) {
                res.add(null);
                return res;
            }
            for(int i=begin;i<=end;i++) {
                List<TreeNode>leftSubList=generateTrees(begin,i-1);
                List<TreeNode>rightSubList=generateTrees(i+1,end);
                for(TreeNode left:leftSubList) {
                    for(TreeNode right:rightSubList) {
                        TreeNode p=new TreeNode(i);
                        p.left=left;
                        p.right=right;
                        res.add(p);
                    }
                }
            }
            return res;
        }
    }

     

  • 相关阅读:
    高级选项更改MathType数学公式样式
    tp 批量转码
    create the web service by yourshelf
    云通讯 添加群组
    sql 更新字段
    op bug 修复计划
    php ut8声明
    PHP 包含文件
    php 判断查询结果是否为空
    合并列值
  • 原文地址:https://www.cnblogs.com/yuelien/p/10592940.html
Copyright © 2011-2022 走看看