LeetCode: Unique Binary Search Trees II
2014-08-31 11:31
316 查看
思路:经典递归方法,注意左右子树元素的个数。
code:
code:
class Solution { public: vector<TreeNode *> solve(vector<int> &num,int start,int n){ vector<TreeNode *> ret; if(n == 0){ ret.push_back(NULL); return ret; } for(int i = start;i < start + n;i++){ int nLeft = i - start; int nRight = n - nLeft - 1; vector<TreeNode *> leftRet, rightRet; leftRet = solve(num,start,nLeft); rightRet = solve(num,i+1,nRight); for(int j = 0;j < leftRet.size();j++){ for(int k = 0;k < rightRet.size();k++){ TreeNode * root = new TreeNode(num[i]); root->left = leftRet[j]; root->right = rightRet[k]; ret.push_back(root); } } } return ret; } vector<TreeNode *> generateTrees(int n) { vector<int> num(n,0); for(int i = 0;i <n;i++) num[i] = i+1; vector<TreeNode *> ret; ret = solve(num,0,n); return ret; } };
相关文章推荐
- LeetCode-- Unique Binary Search Trees II
- 【Leetcode】Unique Binary Search Trees II
- 【leetcode刷题笔记】Unique Binary Search Trees II
- [LeetCode]95.Unique Binary Search Trees II
- 095 Unique Binary Search Trees II [Leetcode]
- [LeetCode] Unique Binary Search Trees II
- 【LeetCode】Unique Binary Search Trees && II
- LeetCode - Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [LeetCode] Unique Binary Search Trees II (难以忍受的递归)
- [LeetCode] Unique Binary Search Trees II
- 【leetcode】Unique Binary Search Trees II
- LeetCode 95. Unique Binary Search Trees II
- [C++]LeetCode: 92 Unique Binary Search Trees II
- Leetcode 95. Unique Binary Search Trees II及二叉树最大最小深度镜像树总结
- Leetcode: Unique Binary Search Trees II
- [Leetcode]@python 95. Unique Binary Search Trees II
- LeetCode: Unique Binary Search Trees II, Dynamic Programming
- LeetCode 56 Unique Binary Search Trees II
- [Leetcode]Unique Binary Search Trees II