建立长度为n的单链表,n>0,删除单链表中等于给定值的元素。数据类型指定为整型。 输入格式: 第一行为链表长度n; 第二行为链表中的n个数据元素的值; 第三行为需要删除的元素值。
时间: 2023-10-24 14:08:40 浏览: 36
好的,我了解你的问题。以下是一个C++的示例代码,用于建立长度为n的单链表并删除其中等于给定值的元素。你可以参考这个代码来解决你的问题。
```c++
#include<iostream>
using namespace std;
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* createList(int n) {
ListNode *head = new ListNode(0);
ListNode *p = head;
while(n--) {
int val;
cin >> val;
p->next = new ListNode(val);
p = p->next;
}
return head->next;
}
void deleteNode(ListNode* &head, int val) {
ListNode *dummy = new ListNode(0);
dummy->next = head;
ListNode *p = dummy;
while (p->next != NULL) {
if (p->next->val == val) {
ListNode *temp = p->next;
p->next = temp->next;
delete temp;
} else {
p = p->next;
}
}
head = dummy->next;
}
void printList(ListNode *head) {
while(head != NULL) {
cout << head->val << " ";
head = head->next;
}
cout << endl;
}
int main() {
int n;
cin >> n;
ListNode *head = createList(n);
int val;
cin >> val;
deleteNode(head, val);
printList(head);
return 0;
}
```
输入样例:
```
5
1 2 3 2 4
2
```
输出样例:
```
1 3 4
```