2024王道数据结构第二章链表第4题

该博客介绍了如何在带头结点的单链表中高效地删除唯一最小值节点的问题。博主提供了从头至尾遍历链表,记录最小值前驱的思路,并给出了相应的C语言实现代码。测试代码展示了算法的正确性。
摘要由CSDN通过智能技术生成

/*
题目:试编写在带头结点的单链表L中删除一个最小值结点的高效算法(假设最小结点是唯一的)。
出自:王道p38.4
*/

//思路:从头至尾遍历,记录最小值前驱,遍历后删除。

//宏定义

#define ElemType int

//单链表定义

typedef struct LNode{
    ElemType val;
    struct LNode*next;
}*LinkList,LNode;

[注] 上述宏定义和结构体定义是答题时要写的答案,并不是代码实现时的定义,代码实现稍有不同,感兴趣可去“help.h”中查看。

//实现函数

void WD38_4(LinkList_n L){
    if(!L) return;
    LNode_n*p=L,*min_pre=L;				//使用min_pre记录最小值前驱结点 
    while(p->next){						//直接检查当前节点下一结点,可避免再记录当前结点的前驱节点 
        if(p->next->val<min_pre->next->val)min_pre=p;
        p=p-&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值