leetCode_Unique Binary Search Trees II

来源:互联网 发布:计算机在生物的数据 编辑:程序博客网 时间:2024/06/07 21:09
题意:找出指定节点所有的二叉搜索树
class Solution {public:    vector<TreeNode*> generateTrees(int n) {        vector<TreeNode *>ans;        if(n==0) return ans;        return find(1,n);    }    vector<TreeNode*> find(int left,int right)    {        vector<TreeNode *>ans;        vector<TreeNode *> ltree;        vector<TreeNode *> rtree;        int i,j,k;        if(left>right)         {            ans.push_back(NULL);            return ans;        }        if(left==right)        {            TreeNode * node=new TreeNode(left);            ans.push_back(node);            return ans;        }        for(i=left;i<=right;i++)        {            ltree=find(left,i-1);            rtree=find(i+1,right);            for(j=0;j<ltree.size();j++)            {                for(k=0;k<rtree.size();k++)                {                    TreeNode *node=new TreeNode(i);                    node->left=ltree[j];                    node->right=rtree[k];                    ans.push_back(node);                }            }        }        return ans;    }};

0 0
原创粉丝点击