c++实现单链表的创建、插入、删除
时间: 2024-09-18 20:05:11 浏览: 26
在C++中,单链表是一种基础数据结构,其基本元素包含一个指向下一个节点的指针。以下是创建、插入和删除操作的基本步骤:
**创建单链表节点**:
```cpp
struct ListNode {
int val; // 节点值
ListNode* next; // 指向下一个节点的指针
ListNode(int x) : val(x), next(nullptr) {} // 构造函数初始化
};
```
**创建空链表**:
```cpp
ListNode* createEmptyList() {
return nullptr;
}
```
**插入节点**:
1. 在链表头部插入:
```cpp
void insertAtHead(ListNode*& head, int val) {
ListNode* newNode = new ListNode(val);
newNode->next = head;
head = newNode;
}
```
2. 在链表尾部插入:
```cpp
void insertAtTail(ListNode*& head, int val) {
if (head == nullptr) {
head = new ListNode(val);
return;
}
ListNode* current = head;
while (current->next != nullptr) {
current = current->next;
}
current->next = new ListNode(val);
}
```
**删除节点**:
1. 删除指定值的第一个节点:
```cpp
void deleteNode(ListNode*& head, int val) {
if (head && head->val == val) {
ListNode* temp = head;
head = head->next;
delete temp;
return;
}
ListNode* current = head;
while (current->next != nullptr && current->next->val != val) {
current = current->next;
}
if (current->next != nullptr) {
ListNode* temp = current->next;
current->next = current->next->next;
delete temp;
}
}
```