私はこれをいくつかの本/チュートリアルで見ました。
(リンクされたリストの) ヘッド ポインターを関数に渡すときは、ダブル ポインターとして渡す必要があります。
例: // これは、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;
}
ヘッドポインタを使ってリストを印刷してみました。どちらの機能も正常に動作します。
何か不足していますか?
ありがとう、