95. Unique Binary Search Trees II
发布时间:2020-12-14 04:48:09 所属栏目:大数据 来源:网络整理
导读:/* * * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x),left(NULL),right(NULL) {} * }; */ class Solution { public : vector TreeNode* generateTrees( int n) { v
/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x),left(NULL),right(NULL) {} * }; */ class Solution { public: vector<TreeNode*> generateTrees(int n) { vector<TreeNode*> res; helper(res,1,n); return res; } void helper(vector<TreeNode*>& res,int _min,int _max) { if (_min > _max) return; for (int i = _min; i <= _max; i++) { vector<TreeNode*> left,right; helper(left,_min,i-1); helper(right,i+1,_max); if (left.size() == 0) left.push_back(NULL); if (right.size() == 0) right.push_back(NULL); for (auto l : left) for (auto r : right) { TreeNode* root = new TreeNode(i); root->left = l; root->right = r; res.push_back(root); } } } }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |