
本文共 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) {} }; vectorgenerateTrees(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������������������������
发表评论
最新留言
关于作者
