补充单向链表的元素删除操作函数代码
时间: 2024-09-15 15:06:33 浏览: 53
单向链表的操作的全部函数合集
在补充单向链表的元素删除操作函数代码时,我们需要考虑两个主要情况:删除节点是指当前节点和它的前驱节点都存在,以及删除头节点的情况。这里是一个简单的C++示例:
```cpp
// 定义链表节点结构体
struct Node {
int data;
Node* next;
};
// 删除指定节点的辅助函数,如果找到则删除,返回新头节点
Node* deleteNode(Node* head, int key) {
// 遍历链表
if (head == nullptr) { // 如果链表为空,直接返回
return nullptr;
}
if (head->data == key) { // 如果头节点就是要删除的节点
Node* temp = head;
head = head->next; // 更新头节点为下一个节点
delete temp; // 释放原头节点
return head;
}
Node* current = head;
while (current->next != nullptr && current->next->data != key) { // 找到需要删除节点的前驱
current = current->next;
}
if (current->next != nullptr) { // 找到了要删除的节点
current->next = current->next->next; // 删除节点
delete current->next; // 释放内存
} else { // 节点未找到
return head;
}
return head;
}
```
阅读全文