Leetcode 95. 不同的二叉搜索树 II

文章目录

  • 题目
  • 代码(9.21 首刷看解析)

题目

Leetcode 95. 不同的二叉搜索树 II_第1张图片

Leetcode 95. 不同的二叉搜索树 II

代码(9.21 首刷看解析)

class Solution {
public:
    vector<TreeNode*> generateTrees(int n) {
        return build(1,n);
    }
    vector<TreeNode*> build(int l, int r) {
        vector<TreeNode*> res;
        if(l > r) {
            res.emplace_back(nullptr);
            return res;
        }
        for(int i = l; i <= r; i++) {
            auto leftTree = build(l, i-1);
            auto rightTree = build(i+1, r);
            for(auto left : leftTree) {
                for(auto right : rightTree) {
                    auto root = new TreeNode(i);
                    root->left = left;
                    root->right = right;
                    res.emplace_back(root);
                }
            }
        }
        return res;
    }
};

你可能感兴趣的:(Leetcode专栏,leetcode)