我在一些书/教程中看到了这一点。
当您将(链表的)头指针传递给函数时,您需要将其作为双指针传递。
例如: // 这是反转一个链表,其中 head 指向第一个节点。
void nReverse(digit **head)
{
digit *prev=NULL;
digit *curr=*head;
digit *next;
while(curr!=NULL)
{
next=curr->next;
curr->next=prev;
prev=curr;
curr=next;
}
*head=prev;
return;
}
这工作正常。
当我使用单指针时它也有效,
void nReverse(digit *head)
{
digit *prev=NULL;
digit *curr=head;
digit *next;
while(curr!=NULL)
{
next=curr->next;
curr->next=prev;
prev=curr;
curr=next;
}
head=prev;
return;
}
我尝试使用头指针打印列表。这两个功能都可以正常工作。
我错过了什么吗?
谢谢,