x*****0 发帖数: 452 | 1 下面是这道题的链接:
http://leetcode.com/onlinejudge#question_95
下面是我的代码:
class Solution {
private:
vector helper(int start, int end) {
if (start > end) {
return vector(1, NULL);
}
vector result;
for (int i = start; i <= end; ++i) {
vector left = helper(start, i-1);
vector right = helper(i+1, end);
for (int m = 0; m < left.size(); ++m) {
for (int n = 0; n < right.size(); ++n) {
TreeNode *root = new TreeNode(i);
root->left = left[m];
root->right = right[n];
result.push_back(root);
}
}
}
return result;
}
public:
vector generateTrees(int n) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
return helper(1, n);
}
};
leetcode 给出编译错误:
/usr/gcc_4_7/lib/gcc/i686-pc-linux-gnu/4.7.2/../../../../include/c++/4.7.2/
bits/stl_vector.h:1137:4: error: invalid conversion from 'int' to 'std::
vector::value_type {aka TreeNode*}' [-fpermissive]
在我自己的IDE上完全没有问题,Dev c++, 使用GCC 4.7.1 64-bit
大家帮忙看看这是什么原因 | c*****l 发帖数: 879 | 2 return vector(1, NULL);
你这么写多难受啊 貌似原因就是不同编译器对NULL的解释不一样
实际上NULL 就是 0 一个int
所以你尝试 create 一个vector 的vector 然后insert(int, int) | x*****0 发帖数: 452 | 3 谢啦,过了。
【在 c*****l 的大作中提到】 : return vector(1, NULL); : 你这么写多难受啊 貌似原因就是不同编译器对NULL的解释不一样 : 实际上NULL 就是 0 一个int : 所以你尝试 create 一个vector 的vector 然后insert(int, int)
|
|