数据结构
设计一个算法删除单链表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); //释放该节点内存
}