Пользовательская функция свопинга для списков дает ошибку сегментации - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь написать функцию подкачки для списков, но одна строка дает мне ошибку сегментации, и я не знаю, почему.

Я пытался убить себя, но это не сработало

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 вызывает ошибку сегментации.

...