用c++写单链表的基本操作代码
时间: 2024-06-13 11:10:02 浏览: 122
单链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。以下是用C++实现单链表的基本操作代码:
1. 定义单链表节点结构体:
```cpp
struct ListNode {
int val; // 数据元素
ListNode *next; // 指向下一个节点的指针
ListNode(int x) : val(x), next(NULL) {} // 构造函数
};
```
2. 向单链表中插入节点:
```cpp
void insert(ListNode* &head, int val) {
ListNode* newNode = new ListNode(val); // 创建新节点
newNode->next = head; // 将新节点的next指针指向头节点
head = newNode; // 更新头节点为新节点
}
```
3. 删除单链表中的节点:
```cpp
void deleteNode(ListNode* &head, int val) {
ListNode* prev = NULL; // 用于记录要删除节点的前一个节点
ListNode* cur = head; // 用于遍历链表
while (cur != NULL) {
if (cur->val == val) {
if (prev == NULL) {
head = cur->next; // 如果要删除的节点是头节点
} else {
prev->next = cur->next; // 否则,将前一个节点的next指针指向要删除节点的下一个节点
}
delete cur; // 释放要删除的节点内存
return;
}
prev = cur; // 更新prev指针
cur = cur->next; // 继续遍历链表
}
}
```
4. 遍历单链表并打印节点值:
```cpp
void printList(ListNode* head) {
ListNode* cur = head; // 从头节点开始遍历
while (cur != NULL) {
cout << cur->val << " "; // 打印节点值
cur = cur->next; // 移动到下一个节点
}
cout << endl;
}
```
5. 获取单链表的长度:
```cpp
int getLength(ListNode* head) {
int length = 0; // 初始化长度为0
ListNode* cur = head; // 从头节点开始遍历
while (cur != NULL) {
length++; // 长度加1
cur = cur->next; // 移动到下一个节点
}
return length;
}
```
阅读全文