void sortInList(LinkList * head) {
int i;int j=0;int c=ListLength_L(*head);
struct ListNode * p;
struct ListNode * q;
p=(*head)->next;
q=p->next;
while(p){
while (q)
{
if(p->val>q->val){
i=p->val;
p->val=q->val;
q->val=i;
}
q=q->next;
}
j++;
// p=p->next; //最后一次这里p已经是NULL了,下面q再等于p的next有点说不过去
// q=p->next; //最后一次的这个运算有问题,
这里是原来的代码,发现是把最后p指向Null的时候,又执行了一次q=p->next导致的。while后面的代码就不会被执行了
if (j<=c-1)
{
p=p->next;
q=p->next;
}
else{ //这样改过之后发现确实是这个问题
p=p->next;
}
// printf("%p\n",head);
}
// printf("woshinidie");
// printf("%p",head);
}
浙公网安备 33010602011771号