zoukankan      html  css  js  c++  java
  • LeetCode "Unique Binary Search Trees II"

    I fell in a deadloop, and didn't see the actual recursion pattern. 

    Reference:http://fisherlei.blogspot.com/2013/03/leetcode-unique-binary-search-trees-ii.html

    class Solution {
    public:
        vector<TreeNode *> generate(int s, int e)
        {
            vector<TreeNode *> subTree; 
            if(s > e)    
            {
                subTree.push_back(NULL);
                return subTree;
            }
    
            for(int i = s; i <= e; i++)  
                    {
                vector<TreeNode*> leftSubs = generate(s, i-1);  
                vector<TreeNode*> rightSubs = generate(i+1, e);  
                for(int j = 0; j < leftSubs.size(); j ++)
                for(int k = 0; k < rightSubs.size(); k ++)
                {
                    TreeNode *pRoot = new TreeNode(i);
                    pRoot->left = leftSubs[j];
                    pRoot->right= rightSubs[k];
                    subTree.push_back(pRoot);
                }
            }
            return subTree;
        }
        vector<TreeNode *> generateTrees(int n) {
            if(n == 0) return generate(1,0);
            return generate(1, n);
        }
    };    
  • 相关阅读:
    数据库设计三大范式
    MYSQL语句
    PHP数据库环境配置
    java空心菱形
    java基础练习2
    java基础练习
    java 控制台输入
    java 基础功能
    Java包装
    JS里的DOM操作注意点
  • 原文地址:https://www.cnblogs.com/tonix/p/3879839.html
Copyright © 2011-2022 走看看