我正在对 LinkedList 进行一些测试,它有两个指针:一个指向列表中的下一项,另一个指向列表中的随机节点。
代码如下:
struct Node
{
Node* pNext; // a pointer to the next node in the list
Node* pReference; // a pointer to a random node within the list
int number; // an integer value
};
/**
* This version works for small/medium lists, using recursion.
*/
Node* duplicateList(Node* n)
{
if (n == NULL) return NULL;
return new Node()
{
number = n->number,
pNext = duplicateList(n->pNext),
pReference = duplicateList(n->pReference)
};
}
我收到以下错误 (VS2010):
d:\dornad\my documents\visual studio 2010\projects\test\test.cpp(21): error C2143: 语法错误:缺少 ';'在“{”之前
1>d:\dornad\my documents\visual studio 2010\projects\test\test.cpp(22): error C2065: 'number' : 未声明的标识符
1>d:\dornad\my documents\visual studio 2010\projects\test\test.cpp(23): 错误 C2065: 'pNext' : 未声明的标识符
1>d:\dornad\my documents\visual studio 2010\projects\test\test.cpp(24): 错误 C2065: 'pReference' : 未声明的标识符
1>d:\dornad\my documents\visual studio 2010\projects\test\test.cpp(25): error C2143: 语法错误:缺少 ';'在 '}' 之前
谢谢。
最佳答案
这个位不是有效的 C++:
return new Node()
{
number = n->number,
pNext = duplicateList(n->pNext),
pReference = duplicateList(n->pReference)
};
改成这样:
Node* pNode = new Node();
pNode->number = n->number;
pNode->pNext = duplicateList(n->pNext);
pNode->pReference = duplicateList(n->pReference);
return pNode;
关于c++ - 测试LinkedLists时VS2010编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3552344/