代码C++实现单链表的插入和删除操作。并运行
时间: 2024-03-16 18:44:02 浏览: 72
以下是C++实现单链表的插入和删除操作的示例代码:
```c++
#include<iostream>
using namespace std;
//定义链表结构体
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
//链表插入操作
void insertNode(ListNode* &head, int val) {
ListNode* newNode = new ListNode(val);
if(head == NULL) {
head = newNode;
} else {
ListNode* cur = head;
while(cur->next != NULL) {
cur = cur->next;
}
cur->next = newNode;
}
}
//链表删除操作
void deleteNode(ListNode* &head, int val) {
if(head == NULL) return;
if(head->val == val) {
head = head->next;
} else {
ListNode* cur = head;
while(cur->next != NULL && cur->next->val != val) {
cur = cur->next;
}
if(cur->next != NULL) {
cur->next = cur->next->next;
}
}
}
//链表遍历
void printList(ListNode* head) {
ListNode* cur = head;
while(cur != NULL) {
cout << cur->val << " ";
cur = cur->next;
}
}
int main() {
ListNode* head = NULL;
insertNode(head, 1);
insertNode(head, 2);
insertNode(head, 3);
insertNode(head, 4);
cout << "插入操作后的链表为:";
printList(head);
deleteNode(head, 2);
deleteNode(head, 4);
cout << "\n删除操作后的链表为:";
printList(head);
return 0;
}
```
在上述代码中,我们首先定义了一个链表结构体 `ListNode`,其中包含节点的值 `val` 和指向下一个节点的指针 `next`。然后,我们实现了链表的插入操作 `insertNode` 和删除操作 `deleteNode`。最后,我们通过 `printList` 函数遍历链表,输出链表中的每个节点的值。
在 `main` 函数中,我们先创建一个空链表 `head`,然后依次插入节点,最后输出插入节点后的链表。然后,我们删除链表中的节点2和节点4,并输出删除节点后的链表。
运行上述代码,输出结果如下:
```
插入操作后的链表为:1 2 3 4
删除操作后的链表为:1 3
```
可以看到,我们成功地实现了单链表的插入和删除操作,并正确输出了链表中节点的值。
阅读全文