/*
名称:删除链表节点
功能:删除一个链表节点
接收:链表头节点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;
}
删除链表节点
最新推荐文章于 2024-06-29 01:13:46 发布