单链表的基本操作c++
时间: 2023-08-10 11:06:06 浏览: 83
关于入门单链表的基本操作
单链表是一种常见的数据结构,其基本操作包括:
1. 初始化链表
```cpp
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* initList(vector<int>& nums) {
ListNode* head = new ListNode(0);
ListNode* p = head;
for(int i = 0; i < nums.size(); i++) {
ListNode* node = new ListNode(nums[i]);
p->next = node;
p = p->next;
}
return head->next;
}
```
2. 插入节点
```cpp
void insertNode(ListNode* head, int pos, int val) {
ListNode* p = head;
for(int i = 0; i < pos - 1; i++) {
p = p->next;
}
ListNode* node = new ListNode(val);
node->next = p->next;
p->next = node;
}
```
3. 删除节点
```cpp
void deleteNode(ListNode* head, int pos) {
ListNode* p = head;
for(int i = 0; i < pos - 1; i++) {
p = p->next;
}
ListNode* q = p->next;
p->next = q->next;
delete q;
}
```
4. 查找节点
```cpp
ListNode* searchNode(ListNode* head, int val) {
ListNode* p = head;
while(p != NULL) {
if(p->val == val) {
return p;
}
p = p->next;
}
return NULL;
}
```
5. 遍历链表
```cpp
void traverseList(ListNode* head) {
ListNode* p = head;
while(p != NULL) {
cout << p->val << " ";
p = p->next;
}
}
```
注意:以上代码中,单链表的头节点不存储数据,仅作为链表的入口。
阅读全文