我正在递归地向列表中添加一个元素,编写一个插入函数。问题是当我运行程序并尝试插入时,它只是插入一次,然后在第二次中断时并有一个错误。 任何建议,感谢名单链接列表插入函数递归C++
辅助函数:
void List::insertHelper(Node* list, int number)
{
if(list->next != NULL)
{
insertHelper(list->next, number);
}
else
{
list->next = new Node;
list->next->data = number;
}
}
此功能时,我所说的递归一个:
void List::insert(int d)
{
if(head == NULL)
{
head = new Node;
head->data = d;
}
else
{
insertHelper(head, d);
}
}
有什么*编译*?在这段代码中没有'Insert'函数,但是它从List :: insert中调用,也没有叫Node的类/结构,也没有叫做'head'的全局变量。请发布* real *代码。 – WhozCraig
插入函数是insertHelper。 thx – Mido
我的心理调试器告诉我'Node'的构造函数永远不会将'Node :: next'设置为NULL,而且这段代码的其余部分也不会。你的'Node :: Node()'构造函数应该接受一个数据元素并且初始化'data'成员和'next',比如Node :: Node(int data):data(data),next(NULL) {}' – WhozCraig