删除单链表中最小值节点
void Deletemin(LinkList &L){ LinkList p,q; LinkList minpre,pre; pre=L;//最小值节点的前驱 q=pre->next; minpre=pre; p=q; int temp=q->data; while(q!=NULL){ if(p->data>q->data){ p=q; minpre=pre; } pre=q; q=q->next; } minpre->next=p->next; free(p); }
删除单链中所有值为X的节点
void DeleteX(LinkList &L,Elemtype e){ LinkList p,q,r; p=L; q=L->next; while(q){ if(q->data==e){ p->next=q->next; r=q; free(r); q=q->next; } else{ q=q->next; p=p->next; } } }
将单链表逆置,且空间复杂度为0(1)
void Reverse(LinkList &L){ LinkList p,q; p=L->next; L->next=NULL; while(p){ q=p->next; p->next=L->next; L->next=p; p=q;//运用头插法,依次将节点插入到头结点之后 } }
原文:https://www.cnblogs.com/Yshun/p/11594720.html