删除链表中最小的值
设计一个算法删除单链表L(有头结点),中的一个最小值结点
/**************************************************
*
*函数名称: LList_DelMin
*函数功能: 删除单链表中最小值结点
*函数参数:
@SeqList *Head :头结点的地址
@ :
*返回结果:
*注意事项: None
*函数作者: 18975491291@163.com
*创建日期: 2024/04/22
*修改历史:
*函数版本: V1.0
**************************************************/
//删除单链表中最小值结点
void LList_DelMin(LList_t *Head)
{
LList t min_prev; //记录最小值结点的直接前驱地址
LList_t min = Head->next; //记录最小值结点的地址
LList_t phead = Head->next; //记录当前结点的地址
LList_t phead_prev = Head //记录当前结点的直接前驱地址
//1,编历链表,目的是找到最小值结点
while(phead->next)
{
//比较链表中结点的数据域的大小
if (min->data > phead->next->data)
{
min = phead->next;
min_prev = phead;
}
//如果发现当前结点数据域不大于当前结点的直接后继,则向后逼历
phead_prev = phead;
phead = phead->next;
}
//2,删除当前的最小值结点,前提是让最小值结点的直接前驱指向最小值结点的直接后继
min_prev->next = min->next;
//3.释放最小值结点的内存
min->next = NULL;
free(min);
}