链表排序_想换个方法
![](zzz/editor/img/code.gif)
typedef struct data DATA_base; DATA_base * list_sort( DATA_base *head ) //排序 { DATA_base *p, *p1, *p2, *temp; int i = 1; temp = ( DATA_base * ) malloc( sizeof(DATA_base) ); temp->next = head; while( i ) { i = 0; p = temp; p1 = p->next; for( p2 = p1->next; p2 != NULL; p2 = p2->next) if( p2->num < p1->num ) { p1->next = p2->next; p->next = p2; p2->next = p1; p = p2; i++; } else { p = p->next; p1 = p1->next; } } head = temp->next; return head; }感觉自己这程序 有隐患。我想换个方法。
![](images/smilies/emot/em13.gif)
![](images/smilies/emot/em06.gif)
顺便问下,这样的程序有返回值好些,还是没返回值好。..
[ 本帖最后由 qwermy 于 2012-2-24 23:39 编辑 ]