单链表(Singly Linked List)是一种线性数据结构,其中每个元素称为节点(Node),每个节点包含两部分:数据域和指针域。数据域存储数据,指针域存储下一个节点的地址。链表的头节点(Head Node)指向第一个节点,最后一个节点的指针域指向空(NULL)。
单链表有多种变体,包括:
删除单链表中的节点通常涉及以下步骤:
以下是一个删除单链表中节点的示例代码(假设节点结构如下):
struct Node {
int data;
struct Node* next;
};
删除节点的函数如下:
void deleteNode(struct Node** head_ref, int key) {
// 如果头节点就是要删除的节点
if (*head_ref != NULL && (*head_ref)->data == key) {
struct Node* temp = *head_ref;
*head_ref = (*head_ref)->next;
free(temp);
return;
}
// 查找要删除的节点
struct Node* current = *head_ref;
struct Node* previous = NULL;
while (current != NULL && current->data != key) {
previous = current;
current = current->next;
}
// 如果节点不存在
if (current == NULL) {
return;
}
// 删除节点
previous->next = current->next;
free(current);
}
free
函数释放内存。通过以上内容,你应该对单链表删除节点的操作有了全面的了解。如果有更多具体问题,欢迎继续提问。
领取专属 10元无门槛券
手把手带您无忧上云