この質問はすでにフォーラムに投稿されていることは知っていますが、解決しようとした小さな問題があり、成功しませんでした
このコードを試したり、他のスレッドにスタックオーバーフローを投稿したりすると、常に違反アクセスエラーが発生します。このコードを試しました
void reverse(node **headRef)
{
node *current = *headRef, *next,*result=NULL;
while(current)
{
next = current->next;
current->next = result;
result =current;
current = next;
}
*headRef = result;
}
Eclipse CPP、Visual Studio、およびコードボックでは、常に違反アクセスが発生します。スタッフを段階的にデバッグしようとすると、現在がNULLであっても、カーソルがwhileループに入ると思います。 current-> nextをcurrent->nextに置き換えると、current-> nextがすでにNULLであるにもかかわらず、カーソルはループに入ります。
while(current->next)
{
next = current->next;
current->next = result;
result =current;
current = next;
}
ループを回避するために同じスタッフをしつこくやろうとしましたが、問題は解決しません
void recursiveReverse(node **headRef) {
node *first = *headRef;
node *rest = first->next;
if(rest ==NULL) return;
recursiveReverse(&rest);
first->next->next = first;
first->next = NULL;
*headRef = rest;
}
VisualStudioからのエラーは次のとおりです。