• 95.Unique Binary Search Trees II


    class Solution {
    public:
        vector<TreeNode *> generateTrees(int n) {
            if (n == 0) return {};
            return *generateTreesDFS(1, n);
        }
        vector<TreeNode*> *generateTreesDFS(int start, int end) {
            vector<TreeNode*> *subTree = new vector<TreeNode*>();
            if (start > end) subTree->push_back(NULL);
            else {
                for (int i = start; i <= end; ++i) {
                    vector<TreeNode*> *leftSubTree = generateTreesDFS(start, i - 1);
                    vector<TreeNode*> *rightSubTree = generateTreesDFS(i + 1, end);
                    for (int j = 0; j < leftSubTree->size(); ++j) {
                        for (int k = 0; k < rightSubTree->size(); ++k) {
                            TreeNode *node = new TreeNode(i);
                            node->left = (*leftSubTree)[j];
                            node->right = (*rightSubTree)[k];
                            subTree->push_back(node);
                        }
                    }
                }
            }
            return subTree;
        }
    };
    
  • 相关阅读:
    MySQL
    MySQL -数据库备份
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    53端口反弹shell
  • 原文地址:https://www.cnblogs.com/smallredness/p/10676573.html
Copyright © 2020-2023  润新知