删除单链表偶数节点c++
时间: 2024-09-29 07:13:37 浏览: 19
删除单链表中的所有偶数节点,通常涉及到遍历链表,同时检查每个节点的值是否为偶数。以下是使用 C++ 实现的一个简要步骤:
```cpp
#include <iostream>
// 定义链表节点结构体
struct ListNode {
int val;
ListNode* next;
ListNode(int x) : val(x), next(NULL) {}
};
ListNode* deleteEvenNodes(ListNode* head) {
if (head == nullptr || head->next == nullptr) { // 如果链表为空或者只有一个元素
return head;
}
ListNode* current = head;
while (current != nullptr) { // 遍历链表
if (current->val % 2 == 0) { // 如果当前节点值为偶数
ListNode* temp = current; // 创建临时指针保存要删除的节点
current = current->next; // 跳过偶数节点
delete temp; // 删除该节点
} else {
current = current->next; // 否则,继续下一个节点
}
}
return head; // 返回新的链表头
}
int main() {
// 假设有一个已初始化的链表
ListNode* list = ...;
list = deleteEvenNodes(list);
// 打印处理后的链表
// ...
return 0;
}
```