У меня возникли проблемы при попытке поменять местами первый и третий элементы в связанном списке.Вот мой код с тем, что я имею до сих пор;
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
Любая помощь будет оценена.