Я пытаюсь написать функцию подкачки для списков, но одна строка дает мне ошибку сегментации, и я не знаю, почему.
Я пытался убить себя, но это не сработало
struct node {
int inf;
node* next;
};
node* swapnode(node* head, node* aprev, node* a, node* bprev, node* b)
{
if(a == b) return head;
if(a == head)
{
node* temp = a->next;
a->next = b->next;
b->next = temp;
bprev->next = a;
head = b;
return head;
}
if(b == head)
{
node* temp = b->next;
b->next = a->next;
a->next = temp;
aprev->next = b;
head = a;
return head;
}
node* temp;
temp = a->next;
a->next = b->next;
b->next = temp;
bprev->next = a;
aprev->next = b;
return head;
}
Похоже, что строка a-> next = b-> next вызывает ошибку сегментации.