#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node* next;
} ;
struct Node* head;
void insert( int data, int n)
{
struct Node
* temp1
= ( struct Node
* ) malloc ( sizeof ( struct Node
* ) ) ; temp1-> data = data;
temp1-> next = NULL;
if ( n== 1 ) {
temp1-> next = head;
head = temp1;
return ;
}
struct Node* temp2 = head;
for ( int i= 0 ; i< n- 2 ; i++ ) {
temp2 = temp2-> next;
}
temp1-> next = temp2-> next;
temp2-> next = temp1;
}
void print( struct Node* temp) {
temp = head;
while ( temp != NULL) {
temp = temp-> next;
}
}
int main( void ) {
head = NULL;
insert( 2 , 1 ) ;
insert( 3 , 2 ) ;
insert( 4 , 1 ) ;
insert( 5 , 2 ) ;
print( ) ;
// your code goes here
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCnN0cnVjdCBOb2RlIHsKCWludCBkYXRhOwoJc3RydWN0IE5vZGUqIG5leHQ7Cn07CnN0cnVjdCBOb2RlKiBoZWFkOwp2b2lkIGluc2VydChpbnQgZGF0YSwgaW50IG4pCnsKCXN0cnVjdCBOb2RlKiB0ZW1wMSA9IChzdHJ1Y3QgTm9kZSopbWFsbG9jKHNpemVvZihzdHJ1Y3QgTm9kZSopKTsKCXRlbXAxLT5kYXRhID0gZGF0YTsKCXRlbXAxLT5uZXh0ID0gTlVMTDsKCWlmKG49PTEpewoJCXRlbXAxLT5uZXh0ID0gaGVhZDsKCQloZWFkID0gdGVtcDE7CgkJcmV0dXJuOwoJfQoJc3RydWN0IE5vZGUqIHRlbXAyID0gaGVhZDsKCWZvcihpbnQgaT0wO2k8bi0yO2krKyl7CgkJdGVtcDIgPSB0ZW1wMi0+bmV4dDsKCX0KCXRlbXAxLT5uZXh0ID0gdGVtcDItPm5leHQ7Cgl0ZW1wMi0+bmV4dCA9IHRlbXAxOwp9CnZvaWQgcHJpbnQoc3RydWN0IE5vZGUqIHRlbXApewoJdGVtcCA9IGhlYWQ7Cgl3aGlsZSh0ZW1wICE9IE5VTEwpewoJCXByaW50ZigiJWQgIix0ZW1wLT5kYXRhKTsKCQl0ZW1wID0gdGVtcC0+bmV4dDsKCX0gCglwcmludGYoIlxuIik7Cn0KaW50IG1haW4odm9pZCkgewoJaGVhZCA9IE5VTEw7CglpbnNlcnQoMiwxKTsKCWluc2VydCgzLDIpOwoJaW5zZXJ0KDQsMSk7CglpbnNlcnQoNSwyKTsKCXByaW50KCk7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglyZXR1cm4gMDsKfQoK