#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
struct Node* deleteEvenNodes(struct Node *head) {
if (head == NULL) {
return NULL;
}
struct Node *prev = head;
struct Node *curr = head->next;
while (curr != head) {
if (curr->data % 2 == 0) {
prev->next = curr->next;
free(curr);
curr = prev->next;
} else {
prev = curr;
curr = curr->next;
}
}
if (head->data % 2 == 0) {
if (head == head->next) {
free(head);
return NULL;
} else {
prev->next = head->next;
free(head);
return prev->next;
}
}
return head;
}