高手 很简单的有关问题可就是解决不了

求助高手 很简单的问题可就是解决不了高手帮忙呀.....我将一单链表中的有number个string数据类型排序,如er

求助高手 很简单的问题可就是解决不了
高手帮忙呀.....
我将一单链表中的有number个string数据类型排序,如er te gu be排序后为 be er gu te,但是以下代码排序后还是 er te gu be没有达到预期效果,不知道什么地方出错了
for(i=1;i<number;i++)//number为链表中数据个数
{
pa=L->next;pb=(L->next)->next;pc=L;//L为头结点
while(!pb)
{
if(!((pb->data).compare(pa->data)))//如果pa所指数据小于pb所指数据,把pb插入pa之前
{
Q=pb->next;
pc->next=pb;
pb->next=pa;
pa->next=Q;
break;
}
else
{
pa=pa->next;pb=pb->next;pc=pc->next;
}
}
}

[解决办法]
看看这样行不?不知道你其他代码,只会改成这样了

C/C++ code
pc=L;//L为头结点for(i=1;i<number;i++)//number为链表中数据个数{pa=pc->next;pb=(pc->next)->next;while(!pb){if(!((pb->data).compare(pa->data)))//如果pa所指数据小于pb所指数据,pa,pb数据互换.{pb->data.swap(pa->data);}pa=pa->next;pb=pb->next;}pc=pc->next;}