数据结构-单向链表笔试题1

设计一个算法删除单链表L(有头结点)中的一个最小值结点
//设计一个算法删除单链表L(有头结点)中的一个最小值结点
bool LLink_DelMin(LNode_t *Head){
	if(Head == NULL || Head->next == NULL)  return false;
    LNode_t *min_prev = Head;          // 最小值结点的前驱指针
    LNode_t *cur = Head->next;        // 当前结点
    int min_val = cur->data;
    while (cur->next != NULL) {
        if (cur->next->data < min_val) {
            min_val = cur->next->data;
            min_prev = cur;            // 更新最小值结点的前驱
        }
        cur = cur->next;
    }
    // 删除最小值结点'
    LNode_t *min = min_prev->next;
    min_prev->next = min->next;
    free(min);
    return true;
}
posted @ 2025-04-13 20:00  w1888  阅读(15)  评论(0)    收藏  举报