加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Unique Binary Search Trees II

发布时间:2020-12-14 04:45:33 所属栏目:大数据 来源:网络整理
导读:Given an integer? n ,generate all structurally unique?BST‘s?(binary search trees) that store values 1 ...? n . Example:Input: 3 Output:[ [ 1 , null , 3 , 2 ],[ 3 , 2 , 1 ], 1 ,[ 2 , 3 ],[ 1 , 3 ]]Explanation:The above output corresponds t
Given an integer? n,generate all structurally unique?BST‘s?(binary search trees) that store values 1 ...? n.
Example:

Input: 3
Output:
[
  [1,null,3,2],[3,2,1],1,[2,3],[1,3]
]
Explanation:
The above output corresponds to the 5 unique BSTs shown below:

   1         3     3      2      1
           /     /      /            3     2     1      1   3      2
    /     /                           2     1         2                 3

code

class Solution
{
public:
    vector<TreeNode*> generateTrees(int n)
    {
        if(n<=0)
            return {};

        return generateTreesCore(1,n);
    }
private:
    vector<TreeNode *> generateTreesCore(int start,int end)
    {
        if(start==end)
            return {new TreeNode(start)};
        else if(start>end)
            return {nullptr};

        vector<TreeNode *> res;
        for(int i=start;i<=end;++i)
        {
            auto left=generateTreesCore(start,i-1);
            auto right=generateTreesCore(i+1,end);

            for(auto &l:left)
            {
                for(auto &r:right)
                {
                    TreeNode *t=new TreeNode(i);
                    t->left=l;
                    t->right=r;
                    res.emplace_back(t);
                }
            }
        }
        return res;
    }
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读