Передача двойного указателя заголовка связанного списка
Я видел это в какой-то книге / учебнике.
Когда вы передаете указатель заголовка (связанного списка) в функцию, вам нужно передать его как двойной указатель.
Например: // Это обратный связанный список, в котором заголовок указывает на первый узел.
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;
}
Я попытался напечатать список с помощью указателя головы. Обе функции работают нормально.
Я что-то пропустил ?
Спасибо,