#include <iostream>
using namespace std;
struct Node
{
int value;
Node *next;
};
Node* removeDivFive(Node* head){
int count = 0;
Node *temp = head, *prev = NULL, *next;
while (temp != NULL){
++count;
next = temp->next;
if ((count % 5) == 0){
if (prev != NULL) {
prev->next = next;
}
delete temp;
}
else {
prev = temp;
}
temp = next;
}
return head;
}
void display(Node* head)
{
while (head != NULL){
cout << head->value << ' ';
head = head->next;
}
cout << endl;
}
void clear(Node* head)
{
while (head != NULL){
Node *next = head->next;
delete head;
head = next;
}
}
int main()
{
Node *head = NULL, **temp = &head;
for(int i = 1; i <= 20; ++i)
{
*temp = new Node{i, NULL};
temp = &((*temp)->next);
}
display(head);
removeDivFive(head);
display(head);
clear(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUKewoJaW50IHZhbHVlOwoJTm9kZSAqbmV4dDsKfTsKCk5vZGUqIHJlbW92ZURpdkZpdmUoTm9kZSogaGVhZCl7CiAgICBpbnQgY291bnQgPSAwOwogICAgTm9kZSAqdGVtcCA9IGhlYWQsICpwcmV2ID0gTlVMTCwgKm5leHQ7CiAgICAKICAgIHdoaWxlICh0ZW1wICE9IE5VTEwpewogICAgICAgICsrY291bnQ7CiAgICAgICAgbmV4dCA9IHRlbXAtPm5leHQ7CiAgICAgICAgaWYgKChjb3VudCAlIDUpID09IDApewogICAgICAgICAgICBpZiAocHJldiAhPSBOVUxMKSB7CiAgICAgICAgICAgICAgICBwcmV2LT5uZXh0ID0gbmV4dDsKICAgICAgICAgICAgfQogICAgICAgICAgICBkZWxldGUgdGVtcDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIHByZXYgPSB0ZW1wOwogICAgICAgIH0KICAgICAgICB0ZW1wID0gbmV4dDsKICAgIH0KCiAgICByZXR1cm4gaGVhZDsKfQoKdm9pZCBkaXNwbGF5KE5vZGUqIGhlYWQpCnsKCXdoaWxlIChoZWFkICE9IE5VTEwpewogICAgICAgIGNvdXQgPDwgaGVhZC0+dmFsdWUgPDwgJyAnOwogICAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OwogICAgfQogICAgY291dCA8PCBlbmRsOwp9Cgp2b2lkIGNsZWFyKE5vZGUqIGhlYWQpCnsKCXdoaWxlIChoZWFkICE9IE5VTEwpewoJCU5vZGUgKm5leHQgPSBoZWFkLT5uZXh0OwogICAgICAgIGRlbGV0ZSBoZWFkOwogICAgICAgIGhlYWQgPSBuZXh0OwogICAgfQp9CgppbnQgbWFpbigpCnsKCU5vZGUgKmhlYWQgPSBOVUxMLCAqKnRlbXAgPSAmaGVhZDsKCWZvcihpbnQgaSA9IDE7IGkgPD0gMjA7ICsraSkKCXsKCQkqdGVtcCA9IG5ldyBOb2Rle2ksIE5VTEx9OwoJCXRlbXAgPSAmKCgqdGVtcCktPm5leHQpOwoJfQoJCglkaXNwbGF5KGhlYWQpOwoJcmVtb3ZlRGl2Rml2ZShoZWFkKTsKCWRpc3BsYXkoaGVhZCk7CgljbGVhcihoZWFkKTsKCQoJcmV0dXJuIDA7Cn0=