Обмен определенных элементов в связанном списке - PullRequest
0 голосов
/ 29 сентября 2019

У меня возникли проблемы при попытке поменять местами первый и третий элементы в связанном списке.Вот мой код с тем, что я имею до сих пор;

void swap_first_third(struct node * A) 
{

   if(A == NULL || A -> next == NULL)
   {
     return;
   }
   else
   {  
     struct node* prev = A;
     struct node* curr = A -> next;

     A = curr;

     while(1)
     {
        struct node* next = curr -> next;
        curr -> next = prev;

        if( next == NULL || next -> next == NULL)
        {
            prev -> next = next;
            break;
        }

        prev -> next = next -> next;

        prev = next;
        curr = prev -> next;
     }

}

}

Это список, который я должен поменять;

15          100         5           100         30

Однако, это мой результат, когда я реализовал функцию подкачки;

5           100         30          100

Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...