[leetcode] Unique Binary Search Trees II

来源:互联网 发布:mac 修改命令行前缀 编辑:程序博客网 时间:2024/05/18 02:39

Unique Binary Search Trees II

/** * Definition for binary tree * struct TreeNode { *     int val; *     TreeNode *left; *     TreeNode *right; *     TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {private:    vector<TreeNode*> generate(int start,int end){        vector<TreeNode*> subTree;        if(start>end){            subTree.push_back(nullptr);            return subTree;        }        for(int k=start;k<=end;k++){            vector<TreeNode*> leftSubs=generate(start,k-1);            vector<TreeNode*> rightSubs=generate(k+1,end);            for(auto i:leftSubs){                for(auto j:rightSubs){                    TreeNode *node=new TreeNode(k);                    node->left=i;                    node->right=j;                    subTree.push_back(node);                }            }        }        return subTree;}    public:    vector<TreeNode *> generateTrees(int n) {        if(n==0){            return generate(1,0);        }        return generate(1,n);    }};


0 0