#include <iostream>
struct Element {
Element* next;
};
int do_something(Element* a) {
if(a) {
do_something(a->next);
}
return 0;
}
int main() {
Element* last = NULL;
Element* next = new Element;
next->next = last;
Element* first = new Element;
first->next = next;
std::cout << do_something(first) << std::endl;
delete first;
delete next;
delete last;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKc3RydWN0IEVsZW1lbnQgewogIEVsZW1lbnQqIG5leHQ7Cn07CgppbnQgZG9fc29tZXRoaW5nKEVsZW1lbnQqIGEpIHsKICBpZihhKSB7CiAgICBkb19zb21ldGhpbmcoYS0+bmV4dCk7CiAgfQogIHJldHVybiAwOwp9CgppbnQgbWFpbigpIHsKICBFbGVtZW50KiBsYXN0ID0gTlVMTDsKICBFbGVtZW50KiBuZXh0ID0gbmV3IEVsZW1lbnQ7CiAgbmV4dC0+bmV4dCA9IGxhc3Q7CiAgRWxlbWVudCogZmlyc3QgPSBuZXcgRWxlbWVudDsKICBmaXJzdC0+bmV4dCA9IG5leHQ7CiAgc3RkOjpjb3V0IDw8IGRvX3NvbWV0aGluZyhmaXJzdCkgPDwgc3RkOjplbmRsOwogIGRlbGV0ZSBmaXJzdDsKICBkZWxldGUgbmV4dDsKICBkZWxldGUgbGFzdDsKICByZXR1cm4gMDsKfQ==