一、链表的排序
//排序
void list_sort(NodePtr L)
{
if(NULL == L || list_empty(L))
{
printf("排序失败\n");
return ;
}for (int i = 0; i < L->len; i++)
{
NodePtr q=L->next;
NodePtr q1 = q->next;
while(q1 != NULL){
if(q->data > q1->data)
{
datatype temp = q->data;
q->data = q1->data;
q1->data =temp;
}
q=q->next; //指针向后偏移一个
q1= q1->next;
}
}
printf("排序成功\n");
list_print(L);
}
二、链表的反转
三、链表的去重
void list_rep(NodePtr L)
{
if(NULL == L || L->len<=1)
{
printf("去重失败\n");
return ;
}
NodePtr q = L;
while(q->next != NULL){
if(q->data == q->next->data)
{
NodePtr temp = q->next;
q->next = temp->next;
free(temp);
}else{
q=q->next;
}
}
printf("去重成功\n");
list_print(L);
}