c++ - 创建列表中的第一个元素始终为 0
问题描述
我还不完全理解 C/C++ 中的链表和节点是如何工作的,但这是我用来将节点添加到列表中的函数。
void AddNode(Node* head, int new_data)
{
Node* new_node = new Node();
Node *last = head;
new_node->data = new_data;
new_node->next = NULL;
if (head == NULL)
{
head = new_node;
return;
}
while (last->next != NULL)
{
last = last->next;
}
last->next = new_node;
}
列表中的第一个元素将始终为 0,我做错了什么?
解决方案
在 c++ 中,您必须更新 Node *last = head; 到节点 *& 最后 = 头;
在 C 中,您必须更新 Node *last = head; 到节点**最后=头;