删除链表节点

/*
名称:删除链表节点
功能:删除一个链表节点
接收:链表头节点head, 要删除节点的int型数据
返回:int
*/
int deleteLink(struct node* L, int data){
	//delPtr指向要被删除的节点
	//prePtr指向要被删除的节点的前一个节点
	struct node * delPtr;
	struct node * prePtr;
	//让两个指针都先指向头节点
	delPtr = L;
	prePtr = L;
	//当节点的data不是要删除的data时,进入循环
	while ((delPtr->data) != data) {
		//如果该节点不是最后一个节点
		if ((delPtr->next) != NULL){
			//两节点一次向后移动
			prePtr = delPtr;
			delPtr = delPtr->next;
		}
		//如果该节点是最后一个节点,证明链表中没有该数据,直接返回-1
		else return -1;
	}
	//开始删除节点,这时delPtr指向要删除的节点,prePtr指向要删除节点的前一个节点
	prePtr->next = delPtr->next;
	//释放delPtr内存
	free(delPtr);
	return 0;
}

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值