#include <iostream>
using namespace std;
struct Node {
int value;
Node* next;
};
Node* head = NULL;
void insert_element2(int x)
{
Node* temp1 = new Node();
temp1->value = x;
temp1->next = NULL;
if (head == NULL)
head = temp1;
else {
Node* temp2 = head;
while(temp2->next != NULL) {
temp2 = temp2->next;
}
temp2->next = temp1;
}
}
void print_list(Node* head)
{
Node* temp = head;
while (temp != NULL) {
cout << temp->value << ' ';
temp = temp->next;
}
cout << endl;
}
void mid_list(Node* head)
{
if (head == NULL) return;
Node* temp1 = head;
Node* temp2 = head;
while ((temp1 != NULL) && (temp1->next != NULL)) {
temp1 = temp1->next->next;
temp2 = temp2->next;
}
cout << temp2->value;
}
int main()
{
insert_element2(1);
insert_element2(2);
insert_element2(3);
insert_element2(4);
print_list(head);
mid_list(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUgewogICAgaW50IHZhbHVlOwogICAgTm9kZSogbmV4dDsKfTsKIApOb2RlKiBoZWFkID0gTlVMTDsKCnZvaWQgaW5zZXJ0X2VsZW1lbnQyKGludCB4KQp7CiAgICBOb2RlKiB0ZW1wMSA9IG5ldyBOb2RlKCk7CiAgICB0ZW1wMS0+dmFsdWUgPSB4OwogICAgdGVtcDEtPm5leHQgPSBOVUxMOwoKICAgIGlmIChoZWFkID09IE5VTEwpIAogICAgICAgIGhlYWQgPSB0ZW1wMTsKICAgIGVsc2UgewogICAgICAgIE5vZGUqIHRlbXAyID0gaGVhZDsKICAgICAgICB3aGlsZSh0ZW1wMi0+bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgICAgIHRlbXAyID0gdGVtcDItPm5leHQ7CiAgICAgICAgfQogICAgICAgIHRlbXAyLT5uZXh0ID0gdGVtcDE7CiAgICB9Cn0KCnZvaWQgcHJpbnRfbGlzdChOb2RlKiBoZWFkKQp7CiAgICBOb2RlKiB0ZW1wID0gaGVhZDsKCiAgICB3aGlsZSAodGVtcCAhPSBOVUxMKSB7CgkJY291dCA8PCB0ZW1wLT52YWx1ZSA8PCAnICc7CiAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICB9CgoJY291dCA8PCBlbmRsOwp9Cgp2b2lkIG1pZF9saXN0KE5vZGUqIGhlYWQpCnsKICAgIGlmIChoZWFkID09IE5VTEwpIHJldHVybjsKCiAgICBOb2RlKiB0ZW1wMSA9IGhlYWQ7CiAgICBOb2RlKiB0ZW1wMiA9IGhlYWQ7CgogICAgd2hpbGUgKCh0ZW1wMSAhPSBOVUxMKSAmJiAodGVtcDEtPm5leHQgIT0gTlVMTCkpIHsKICAgICAgICB0ZW1wMSA9IHRlbXAxLT5uZXh0LT5uZXh0OwogICAgICAgIHRlbXAyID0gdGVtcDItPm5leHQ7CiAgICB9CgoJY291dCA8PCB0ZW1wMi0+dmFsdWU7Cn0KCmludCBtYWluKCkKewogICAgaW5zZXJ0X2VsZW1lbnQyKDEpOwogICAgaW5zZXJ0X2VsZW1lbnQyKDIpOwogICAgaW5zZXJ0X2VsZW1lbnQyKDMpOwogICAgaW5zZXJ0X2VsZW1lbnQyKDQpOwoKICAgIHByaW50X2xpc3QoaGVhZCk7CiAgICBtaWRfbGlzdChoZWFkKTsKCiAgICByZXR1cm4gMDsKfQ==