#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)
{
Node* temp1 = head;
Node* temp2 = head;
while (temp1->next != NULL) {
temp1 = temp1->next->next;
temp2 = temp2->next;
}
cout << temp2->value;
}
int main()
{
insert_element2(1);
insert_element2(2);
insert_element2(3);
print_list(head);
mid_list(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUgewogICAgaW50IHZhbHVlOwogICAgTm9kZSogbmV4dDsKfTsKIApOb2RlKiBoZWFkID0gTlVMTDsKCnZvaWQgaW5zZXJ0X2VsZW1lbnQyKGludCB4KQp7CiAgICBOb2RlKiB0ZW1wMSA9IG5ldyBOb2RlKCk7CiAgICB0ZW1wMS0+dmFsdWUgPSB4OwogICAgdGVtcDEtPm5leHQgPSBOVUxMOwoKICAgIGlmIChoZWFkID09IE5VTEwpIAogICAgICAgIGhlYWQgPSB0ZW1wMTsKICAgIGVsc2UgewogICAgICAgIE5vZGUqIHRlbXAyID0gaGVhZDsKICAgICAgICB3aGlsZSh0ZW1wMi0+bmV4dCAhPSBOVUxMKSB7CiAgICAgICAgICAgIHRlbXAyID0gdGVtcDItPm5leHQ7CiAgICAgICAgfQogICAgICAgIHRlbXAyLT5uZXh0ID0gdGVtcDE7CiAgICB9Cn0KCnZvaWQgcHJpbnRfbGlzdChOb2RlKiBoZWFkKQp7CiAgICBOb2RlKiB0ZW1wID0gaGVhZDsKCiAgICB3aGlsZSAodGVtcCAhPSBOVUxMKSB7CgkJY291dCA8PCB0ZW1wLT52YWx1ZSA8PCAnICc7CiAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICB9CgoJY291dCA8PCBlbmRsOwp9Cgp2b2lkIG1pZF9saXN0KE5vZGUqIGhlYWQpCnsKICAgIE5vZGUqIHRlbXAxID0gaGVhZDsKICAgIE5vZGUqIHRlbXAyID0gaGVhZDsKCiAgICB3aGlsZSAodGVtcDEtPm5leHQgIT0gTlVMTCkgewogICAgICAgIHRlbXAxID0gdGVtcDEtPm5leHQtPm5leHQ7CiAgICAgICAgdGVtcDIgPSB0ZW1wMi0+bmV4dDsKICAgIH0KCiAgICBjb3V0IDw8IHRlbXAyLT52YWx1ZTsKfQoKaW50IG1haW4oKQp7CiAgICBpbnNlcnRfZWxlbWVudDIoMSk7CiAgICBpbnNlcnRfZWxlbWVudDIoMik7CiAgICBpbnNlcnRfZWxlbWVudDIoMyk7CgogICAgcHJpbnRfbGlzdChoZWFkKTsKICAgIG1pZF9saXN0KGhlYWQpOwoKICAgIHJldHVybiAwOwp9