95. 不同的二叉搜索树 II
发布日期:2021-05-14 23:49:18 浏览次数:20 分类:精选文章

本文共 2999 字,大约阅读时间需要 9 分钟。

���������������1���n���������������������������������������������������������������������������������������������������������������������������������������������

������������

������������1���n������������������������������1������������������������������������������������2���n������������������������������2������������������������������1���������������3���n���������������������3���������������������������1,2������������������������������4���n���������������������������������������n������������������������������������������������������������������������������

������������

class Solution {
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
};
vector
generateTrees(int n) {
vector
ans;
if (n == 0) {
return ans;
}
return generateTreesHelper(1, n, ans);
}
vector
generateTreesHelper(int start, int end, vector
& ans) {
vector
leftTrees = generateTreesHelper(start, start, ans);
vector
rightTrees = generateTreesHelper(start + 1, end, ans); // ������������������������������ for (auto& leftTree : leftTrees) { // ������������������������������ for (auto& rightTree : rightTrees) { TreeNode* root = new TreeNode(start); root->left = leftTree; root->right = rightTree; ans.push_back(root); } } return ans; } vector
generateTreesHelper(int start, int end, vector
& ans) { if (start > end) { // ��������������� ans.push_back(nullptr); } else if (start == end) { // ������������������ TreeNode* node = new TreeNode(start); ans.push_back(node); return ans; } else { vector
leftSub = generateTreesHelper(start, start - 1, ans); vector
rightSub = generateTreesHelper(start + 1, end, ans); // ��������������������������������������������������������������������������� for (auto left : leftSub) { for (auto right : rightSub) { TreeNode* node = new TreeNode(start); node->left = left; node->right = right; ans.push_back(node); } } return ans; } } };

������������

  • TreeNode ������������������������������������������������������������������������������������

  • generateTrees ������������������������������������������������n���0���������������������

  • generateTreesHelper ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

  • ���������������������

    • ������������������������������������������������������������������������������
    • ���������������������������������������������������������������������������������������
  • ������������������

    • ������������leftSub���rightSub���������
    • ������������������������������������������������������������������������������������������������
  • ������������������������������������������������������������������������������������1���n������������������������

    上一篇:考研复试——KY276 Problem C
    下一篇:广州大学第十四届ACM大学生程序设计竞赛(同步赛)

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年05月01日 01时54分57秒