c++ - 测试LinkedLists时VS2010编译错误

标签 c++ data-structures linked-list

我正在对 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/

相关文章:

algorithm - 如何将大型二分图用户-项目转换为项目-项目?

c++ - 我如何使用 C++ 中的类创建和填充链表?

c++ - 引用 C++ UWP 项目

c++ - 嵌套指针而不是继承

c++ - `new (std::nothrow)`是如何实现的?

mysql - 将数据从链接表迁移到目标表

arrays - 使用 NSKeyedArchiver 保存和加载对象数据 - 对象变量更改后数据丢失

c++ - 是否可以从 const 方法迭代链表

c - 我有一个链接列表,我想删除重复的值

c++ - 使用 gdb 打印 ip 地址