#include<stdio.h>
#include<stdlib.h>
struct list {
int node;
struct list *next;
};
void insert(struct list **, int);
void print(struct list *);
int main() {
struct list *mylist= NULL;
insert(&mylist, 10);
insert(&mylist, 20);
insert(&mylist, 30);
insert(&mylist, 40);
insert(&mylist, 50);
insert(&mylist, 60);
insert(&mylist, 70);
reverse(&mylist);
print(mylist);
return 0;
}
void reverse(struct list **temp) {
struct list *pre, *aft, *head;
pre = NULL;
head = *temp;
while(head!= NULL) {
aft =head->next;
head->next = pre;
pre = head;
head = aft;
}
*temp = pre;
}
void print(struct list *head) {
struct list *temp=head;
if(temp==NULL)
return;
else {
while(temp!=NULL) {
temp=temp->next;
}
}
}
void insert(struct list **head, int value) {
struct list *new_node,*temp=*head;
new_node
= (struct list
*)malloc(sizeof(struct list
)); //node Creation
new_node->node=value;
new_node->next=NULL;
//Adding Node to list
if(*head==NULL) {
*head=new_node;
} else {
while(temp->next!=NULL) {
temp=temp->next;
}
temp->next=new_node;
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RkbGliLmg+CnN0cnVjdCBsaXN0IHsKICAgIGludCBub2RlOwogICAgc3RydWN0IGxpc3QgKm5leHQ7Cn07Cgp2b2lkIGluc2VydChzdHJ1Y3QgbGlzdCAqKiwgaW50KTsKdm9pZCBwcmludChzdHJ1Y3QgbGlzdCAqKTsKCmludCBtYWluKCkgewogICAgc3RydWN0IGxpc3QgKm15bGlzdD0gTlVMTDsKICAgIGluc2VydCgmbXlsaXN0LCAxMCk7CiAgICBpbnNlcnQoJm15bGlzdCwgMjApOwogICAgaW5zZXJ0KCZteWxpc3QsIDMwKTsKICAgIGluc2VydCgmbXlsaXN0LCA0MCk7CiAgICBpbnNlcnQoJm15bGlzdCwgNTApOwogICAgaW5zZXJ0KCZteWxpc3QsIDYwKTsKICAgIGluc2VydCgmbXlsaXN0LCA3MCk7CiAgICByZXZlcnNlKCZteWxpc3QpOwogICAgcHJpbnRmKCJoZWxsbyAgIik7CiAgICBwcmludChteWxpc3QpOwogICAgcmV0dXJuIDA7Cn0KCnZvaWQgcmV2ZXJzZShzdHJ1Y3QgbGlzdCAqKnRlbXApIHsKICAgIHN0cnVjdCBsaXN0ICpwcmUsICphZnQsICpoZWFkOwogICAgcHJlID0gTlVMTDsKICAgIGhlYWQgPSAqdGVtcDsKICAgIHdoaWxlKGhlYWQhPSBOVUxMKSB7CiAgICAgICAgYWZ0ID1oZWFkLT5uZXh0OwogICAgICAgIGhlYWQtPm5leHQgPSBwcmU7CiAgICAgICAgcHJlID0gaGVhZDsKICAgICAgICBoZWFkID0gYWZ0OwogICAgICAgIHByaW50ZigiJWRcdCIscHJlLT5ub2RlKTsKICAgIH0KICAgICp0ZW1wID0gcHJlOwp9Cgp2b2lkIHByaW50KHN0cnVjdCBsaXN0ICpoZWFkKSB7CiAgICBzdHJ1Y3QgbGlzdCAqdGVtcD1oZWFkOwogICAgaWYodGVtcD09TlVMTCkKICAgICAgICByZXR1cm47CiAgICBlbHNlIHsKICAgICAgICB3aGlsZSh0ZW1wIT1OVUxMKSB7CiAgICAgICAgICAgIHByaW50ZigiJWRcdCIsdGVtcC0+bm9kZSk7CiAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKICAgICAgICB9CiAgICB9Cn0KCnZvaWQgaW5zZXJ0KHN0cnVjdCBsaXN0ICoqaGVhZCwgaW50IHZhbHVlKSB7CiAgICBzdHJ1Y3QgbGlzdCAqbmV3X25vZGUsKnRlbXA9KmhlYWQ7CiAgICBuZXdfbm9kZSA9IChzdHJ1Y3QgbGlzdCAqKW1hbGxvYyhzaXplb2Yoc3RydWN0IGxpc3QpKTsKICAgIC8vbm9kZSBDcmVhdGlvbgogICAgbmV3X25vZGUtPm5vZGU9dmFsdWU7CiAgICBuZXdfbm9kZS0+bmV4dD1OVUxMOwogICAgLy9BZGRpbmcgTm9kZSB0byBsaXN0CiAgICBpZigqaGVhZD09TlVMTCkgewogICAgICAgICpoZWFkPW5ld19ub2RlOwogICAgfSBlbHNlIHsKICAgICAgICB3aGlsZSh0ZW1wLT5uZXh0IT1OVUxMKSB7CiAgICAgICAgICAgIHRlbXA9dGVtcC0+bmV4dDsKICAgICAgICB9CiAgICAgICAgdGVtcC0+bmV4dD1uZXdfbm9kZTsKICAgIH0KfQo=