您的位置:首页 > 产品设计 > UI/UE

leetcode 95. Unique Binary Search Trees II

2017-02-14 18:08 489 查看
class Solution {
public:
vector<TreeNode*> generateTrees(int n)
{
if (n == 0)
{
return{};
}
return process(1, n);
}
private:
vector<TreeNode*> process(const int left, const int right)
{
if (left > right)
{
return{nullptr};
}
vector<TreeNode *>res;
for (auto i = left; i <= right; i++)
{
auto left_set = process(left, i - 1);
auto right_set = process(i + 1, right);
for (auto m : left_set)
{
for (auto n : right_set)
{
TreeNode *temp = new TreeNode(i);
temp->left = m;
temp->right = n;
res.push_back(temp);
}
}
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息