完成一个链表基本操作编程:初始化、插入、删除、遍历。
时间: 2023-10-24 20:04:45 浏览: 93
好的,以下是链表基本操作的 C++ 代码实现:
```c++
#include <iostream>
using namespace std;
// 定义链表节点结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
// 初始化链表
ListNode* initList() {
ListNode *head = new ListNode(0); // 头节点
head->next = NULL;
return head;
}
// 插入节点
void insertNode(ListNode *head, int val) {
ListNode *newNode = new ListNode(val);
newNode->next = head->next;
head->next = newNode;
}
// 删除节点
void deleteNode(ListNode *head, int val) {
ListNode *p = head->next;
ListNode *pre = head;
while (p != NULL) {
if (p->val == val) {
pre->next = p->next;
delete p;
break;
}
pre = p;
p = p->next;
}
}
// 遍历链表
void printList(ListNode *head) {
ListNode *p = head->next;
while (p != NULL) {
cout << p->val << " ";
p = p->next;
}
cout << endl;
}
int main() {
ListNode *head = initList();
insertNode(head, 1);
insertNode(head, 2);
insertNode(head, 3);
insertNode(head, 4);
insertNode(head, 5);
printList(head);
deleteNode(head, 3);
printList(head);
return 0;
}
```
运行结果:
```
5 4 3 2 1
5 4 2 1
```
阅读全文