输入若干个正整数(输入-1为结束标志),建立一个单向链表,将其中的偶数值结点删除后输出。链表节点定义为: struct Node{ int data; struct Node *next; }
时间: 2025-02-09 18:16:43 浏览: 33
在编程中,你可以通过创建一个函数来实现这个功能。首先,你需要定义一个Node结构体,包含数据成员data和指向下一个节点的指针next。这里是一个简单的步骤说明:
1. 定义Node结构体:
```cpp
struct Node {
int data;
struct Node* next;
};
```
2. 创建一个函数,例如`deleteEvenNodes`,接受链表头节点作为参数:
```cpp
void deleteEvenNodes(Node** head) {
Node* current = *head; // 初始化当前节点为头节点
while (current != NULL && current->data != -1) { // 当有元素或遇到结束标志时
if (current->data % 2 == 0) { // 如果当前节点值为偶数
Node* temp = current->next; // 保存当前节点的下一个节点
free(current); // 释放当前节点的内存
current = temp; // 更新当前节点为下一个节点
} else { // 如果当前节点值为奇数
current = current->next; // 直接移动到下一个节点
}
}
*head = current; // 如果链表还有剩余元素,更新头节点
}
```
在这个函数中,我们遍历链表,如果遇到偶数节点就删除它并跳过下一个节点。当找到非结束标志且不是偶数的节点时,我们会继续向前移动。
阅读全文
相关推荐










