Я пытаюсь поменять местами два узла в данном связанном списке. будь то узел рядом с ним или любой узел в связанном списке. Ошибок нет, но я не могу заставить его работать.Обмен двумя узлами связанный список C
struct lnode
{
int some_line;
int count;
char* some_word;
struct lnode* next;
};
void swap_alternate_nodes(struct lnode** head, struct lnode* odd_node, struct lnode* even_node)
{
struct lnode* temp;
if((*head)==NULL)
{
return;
}
odd_node = (*head);
even_node= (*head)->next;
if((*head)->next!=NULL)
{
(*head)=(*head)->next;
}
while(odd_node && even_node)
{
temp=even_node->next;
even_node->next=odd_node;
odd_node->next=temp;
odd_node=temp;
if(odd_node!=NULL)
{
even_node=odd_node->next;
}
}
return;
}
Вы не можете поменять указатели на них, если это не двусвязный список, или у вас есть указатели на указатели. – thejh