数据结构-设计一个算法删除单链表L(有头节点)中的最小结点。

数据结构-设计一个算法删除单链表L(有头节点)中的最小结点。

数据结构

设计一个算法删除单链表L(有头节点)中的最小结点。

/**************************************************************************** * @name      	LkListDelMin* @brief 		删除单链表中的最小结点* @param		LkList_t *Head:头节点* @retval		bool** @author		https://www.cnblogs.com/yuhengwang* *************************************************************************/
bool LkListDelMin(LkList_t *Head)
{LkList_t * Min = Head;                     //记录最小值节点的直接前驱LkList_t * Min_prev = Head->Next;          //记录最小值节点LkList_t * Phead_prev = Head;              //记录当前节点的直接前驱LkList_t * Phead = Head->Next;             //记录当前节点//遍历链表找到最小值节点while (Phead->Next != NULL) {if (Min->Data > Phead->Next->Data){Min = Phead->Next;Min_prev = Phead;}Phead_prev = Phead;Phead = Phead->Next;}//删除最小值节点Min_prev->Next = Min->Next;                //将最小值节点的直接后继地址赋值给前驱的指针域Min->Next = NULL;                          //将最小值节点的指针域指向NULLfree(Min);                                 //释放该节点内存
}