Хорошо работает, когда я вставляю узел в 0-ю позицию, но не тогда, когда я вставляю где-то посередине. Я сохранил указатель prev для перехода до предыдущего узла и я также проверил, должен ли узел быть вставлен в положение хвоста. Я понятия не имею, почему он дает ошибку сегментации. Может ли кто-нибудь помочь мне решить эту проблему? код:Ошибка сегментации при вставке узла в заданное положение одиночно связанного списка с использованием C++
Node* InsertNth(Node *head, int data, int position)
{
Node * temp=new Node;
int i=1;
temp->data=data;
temp->next=NULL;
Node * prev;
if(position==0)
{if(head==NULL)
head=temp;
else
{
temp->next=head;
head=temp;
}
}
else
{
prev=head;
while(i!=position)
{
i++;
prev=prev->next;
}
if(prev->next=NULL)
{
prev->next=temp;
}
else
{
temp->next=prev->next;
prev->next=temp;
}
}
return head;
}
Если вы хотите вставить элемент, не по индексу '0', вы должны сгенерировать узел для каждого индекс до этого. – Rakete1111