我想按升序对链表中的元素进行排序。
我编写了以下代码:
void don(struct node *head)
{
struct node *god,*tmp=head,*current,*bak;
for(god=head;god->next!=NULL;god=god->next)
{
current=god->next;
for(bak->next=tmp;(bak->next)!=(god->next);bak=bak->next)
{
if((current->data)<(bak->next->data))
{
god->next=current->next;
current->next=god;
bak->next=current;
}
}
}
}
但它会导致无限循环。
请帮助纠正代码:)!
我希望它这样做
5-2-3-1-4
2-5-3-1-4
2-3-5-1-4
1-2-3-5-4
1-2-3-4-5
最佳答案
本声明
god->next=current->next;
打破第一个for()循环:
for(god=head;god->next!=NULL;god=god->next)
关于c - 对链表中的元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36467142/