特定のリンク リスト内の 2 つのノードを交換しようとしています。隣のノードであるか、リンクされたリスト内の任意のノードであるか。エラーはありませんが、動作させることができません。
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;
}