数据结构-单向链表笔试题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;
}

浙公网安备 33010602011771号