删除在单链表中最大值元素(唯一)

删除单链表中最大元素(唯一)

用设定四个指针,两个指针做最大值的标记,两个指针遍历单链表。因为要删除单链表的元素 必须找到它的前置结点,所以有两个指针是指向最大元素的前置结点。

void ListDelnode(Linknode *L)
{
     Linknode *p=L->next,*pre=L;,*maxp,*maxpre;
     maxp=p;
     maxpre=pre;
     if(p!=NULL)
     {
       while(p->data>maxp->data)
       {
         maxp=p;
         maxpre=pre;//更新maxp maxpre
        
       }
     pre=p;
     p=p->next;//p pre 前进
  }
  maxpre->next=maxp->next;//删除maxp
  free(maxp);//释放它
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值