链表删除指定元素算法

链表删除指定元素算法
我们只需要分情况理清楚就很简单
在算法分析的时候记清楚自己的思路是最重要的
只要链表里有一个元素与给定的元素不相同 第一次与给定元素不相同的节点就为头节点
1:改变头节点
2:不改变头节点

List deleList(List p,int val){
List r=p;
List head=NULL;
while(r ){
-------if(r->data==val){ //删除指定元素我分为两种情况 删除了头节点和 没有删除头节点
-------------if(p->data == val){//只要头节点所在的元素与val相等再回执行这条语句
-------------p=p->next; //第一个与val不相等的节点为头节点 聊表重要的就是头指针
-------------free( r);
-------------r=p;
-------------}
------else{
-------------head->next=r->next;
-------------free(r );
-------------r=head->next; //
-------------}
}
-------else{
-------------head=r; //记录要删除节点的头一个节点
-------------r=r->next;
-------------}
}
return p;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值