数据结构链表笔试题
笔试题3:设计一个算法删除单链表 L(有头结点)中的一个最小值结点
/*******************************************************************
*
* 函数名称: LList_Del
* 函数功能: 删除链表中最小值节点
* 函数参数:
* @L :传递头节点的地址
* 返回结果:
* 注意事项: None
* 函数作者: liuliu @136.com
* 创建日期: 2024/04/22
* 修改历史:
* 函数版本: V1.0
* *****************************************************************/
//删除最小值节点
void LList_Del( Data_Type *L)
{
Node_Type *current=L-->next;//当前节点地址
Node_Type *current_prev=L;//当前节点的直接前驱地址
Node_Type *minnode=current;//最小值节点的地址
Node_Type *min_prev=L;//最小值节点的直接前驱
//遍历链表,找出最小值节点并删除
whlie(current)
{
if(current-->data>minnode-->data )
{
minnode=current;//记录最小值的节点地址
min_prev=current_prev;//记录最小值节点的直接前驱的地址
}
current=current-->Next;//自增到下一个节点
current_prev=current_prev-->next;
}
min_prev-->next=minnode-->next;//删除最小值节点
minnode-->next=NULL;
free(minnode);//释放最小值节点的内存
return;
}