void linkList_sort_bubble(linkList *l){//线性链表冒泡排序
linkNode *p=(linkNode *)malloc(sizeof(linkNode)),*q,*last=NULL;
p->next=*l;
*l=p;
while((*l)->next!=last)
{
p=*l;
q=p->next;
while(q->next!=last)
{
if (p->next->data > q->next->data)
{//交换
printf("JKJK\n");
p->next=q->next;
q->next=q->next->next;
p->next->next=q;//这句有问题,加上就不能正常运行,但看上去没问题啊??
}
p=p->next;
q=q->next;
}
last=q;
}
*l=(*l)->next;}
typedef struct linkNode{//这是我的结构体定义。
int data;
struct linkNode * next;}linkNode,* linkList;
主要问题就是注释那句,加上就运行不了提示
/bin/bash: line 1: 9135 Segmentation fault: 11 "linklistlink20131127180648" [Finished in 0.4s with exit code 139]
去掉可以正常运行,但运行结果肯定又不对了,太奇怪了!