#include <iostream>
using namespace std;
struct Elem
{
int num;
Elem* next;
};
void printLinkedList(Elem* list) {
while (list) {
cout << list->num << ' ';
list = list->next;
}
cout << endl;
}
void deleteFromLinkedList(Elem* &list) {
if (!list)
return;
Elem *curr = list, *next = list->next, *prev = NULL;
while (next)
{
if (curr->num < next->num) {
if (prev)
prev->next = next;
else
list = next;
delete curr;
}
else {
prev = curr;
}
curr = next;
next = curr->next;
}
}
int main()
{
Elem* first = NULL, *last = NULL, *p;
int i;
//cout << "Enter any number or 0 to finish: ";
cin >> i;
while (i != 0)
{
p = new Elem;
p->num = i;
p->next = NULL;
if (first == NULL)
{
first = last = p;
}
else
{
last->next = p;
last = last->next;
}
//cout << "Enter any number or 0 to finish: ";
cin >> i;
}
printLinkedList(first);
deleteFromLinkedList(first);
printLinkedList(first);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IEVsZW0KewogICAgaW50IG51bTsKICAgIEVsZW0qIG5leHQ7Cn07Cgp2b2lkIHByaW50TGlua2VkTGlzdChFbGVtKiBsaXN0KSB7Cgl3aGlsZSAobGlzdCkgewoJCWNvdXQgPDwgbGlzdC0+bnVtIDw8ICcgJzsKCQlsaXN0ID0gbGlzdC0+bmV4dDsKCX0KCWNvdXQgPDwgZW5kbDsKfQoKdm9pZCBkZWxldGVGcm9tTGlua2VkTGlzdChFbGVtKiAmbGlzdCkgewoKICAgIGlmICghbGlzdCkKICAgICAgICByZXR1cm47CgogICAgRWxlbSAqY3VyciA9IGxpc3QsICpuZXh0ID0gbGlzdC0+bmV4dCwgKnByZXYgPSBOVUxMOwoKICAgIHdoaWxlIChuZXh0KQogICAgewogICAgICAgIGlmIChjdXJyLT5udW0gPCBuZXh0LT5udW0pIHsKICAgICAgICAgICAgaWYgKHByZXYpCiAgICAgICAgICAgICAgICBwcmV2LT5uZXh0ID0gbmV4dDsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgbGlzdCA9IG5leHQ7CiAgICAgICAgICAgIGRlbGV0ZSBjdXJyOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgcHJldiA9IGN1cnI7CiAgICAgICAgfQogICAgICAgIGN1cnIgPSBuZXh0OwogICAgICAgIG5leHQgPSBjdXJyLT5uZXh0OwogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIEVsZW0qIGZpcnN0ID0gTlVMTCwgKmxhc3QgPSBOVUxMLCAqcDsKICAgIGludCBpOwoKICAgIC8vY291dCA8PCAiRW50ZXIgYW55IG51bWJlciBvciAwIHRvIGZpbmlzaDogIjsKICAgIGNpbiA+PiBpOwogICAKICAgIHdoaWxlIChpICE9IDApCiAgICB7CiAgICAgICAgcCA9IG5ldyBFbGVtOwogICAgICAgIHAtPm51bSA9IGk7CiAgICAgICAgcC0+bmV4dCA9IE5VTEw7CiAgICAgICAgaWYgKGZpcnN0ID09IE5VTEwpCiAgICAgICAgewogICAgICAgICAgICBmaXJzdCA9IGxhc3QgPSBwOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBsYXN0LT5uZXh0ID0gcDsKICAgICAgICAgICAgbGFzdCA9IGxhc3QtPm5leHQ7CiAgICAgICAgfQogICAgICAgIC8vY291dCA8PCAiRW50ZXIgYW55IG51bWJlciBvciAwIHRvIGZpbmlzaDogIjsKICAgICAgICBjaW4gPj4gaTsKICAgIH0KCiAgICBwcmludExpbmtlZExpc3QoZmlyc3QpOwoJZGVsZXRlRnJvbUxpbmtlZExpc3QoZmlyc3QpOwogICAgcHJpbnRMaW5rZWRMaXN0KGZpcnN0KTsKfQ==