首页 > 其他分享 >链表的操作例题

链表的操作例题

时间:2024-04-22 21:33:42浏览次数:24  
标签:结点 NULL inc next 链表 操作 例题 minNode

链表的删除操作

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

/*******************************************
 * name     : DelNode
 * function :删除单链表L中的一个最小值结点
 * argument : @L:单链表L的地址
 * retval   : None
 * date     :2024/04/22
 * note     :Note
********************************************/
void DelNode(*L)
{
    // 链表为空无法删除最小值结点
    if (L->next == NULL) {
        printf("Cannot delete min value node from single-node list.\n");
        return;
    }
    LinkList *inc = L->next;        //递增结点
    LinkList *minNode = NULL;       //最小结点前一个的地址
    LinkList *minNode_front = NULL; //最小结点地址
    DataType min = inc->data;       //最小值
    while(inc){
        if(min < inc->next->data){
            min = inc->data;
            minNode_front = inc;
            minNode = inc->next;
        }
        inc = inc->next;
    }
    //删除最小结点
    minNode_front->next = minNode->next;
    minNode->next = NULL;
    //释放空间
    free(minNode);
    return;
}

标签:结点,NULL,inc,next,链表,操作,例题,minNode
From: https://www.cnblogs.com/Mr--Song/p/18151591

相关文章