Unique Binary Search Trees II

来源:互联网 发布:nba2k16流川枫捏脸数据 编辑:程序博客网 时间:2024/05/07 17:01

比根节点值小的数都可以做左子树的结点,递归思想自顶向下,要想解决该问题,先要解决子问题

class Solution {public:    void generate(vector<TreeNode*>& vec, int start, int end)    {        if(start > end)        {            vec.push_back(NULL);            return;        }        for(int i = start; i <= end; ++ i)        {            vector<TreeNode*> left;            generate(left, start, i - 1);            vector<TreeNode*> right;            generate(right, 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[j];                    root -> right = right[k];                    vec.push_back(root);                }            }        }    }    vector<TreeNode*> generateTrees(int n)    {        //TreeNode* root = NULL;        vector<TreeNode*> vec;        generate(vec, 1, n);        return vec;    }};


0 0
原创粉丝点击