#include<stdio.h>
struct node
{
int info;
struct node* next;
};
node* newNode(int data)
{
struct node* temp = new node;
temp->info = data;
temp->next=NULL;
return (temp);
}
void print(node* head)
{
node* ptr=head;
while(ptr!=NULL)
{
printf("%d->",ptr->info);
ptr=ptr->next;
}
printf("NULL");
}
void reverse(node* start,int k)
{
int arr[k];
int i_start=0;
node* ptr=start;
for(int m=0;m<k;m++)
{
if(ptr==NULL)
break;
arr[k-1-m]=ptr->info;
i_start=k-1-m;
ptr=ptr->next;
}
ptr=start;
for(int m=i_start;m<k;m++)
{
if(ptr==NULL)
return;
ptr->info=arr[m];
ptr=ptr->next;
}
reverse(ptr,k);
}
int main()
{
int k=2;
node* head=newNode(0);
head->next=newNode(1);
head->next->next=newNode(2);
head->next->next->next=newNode(3);
head->next->next->next->next=newNode(4);
head->next->next->next->next->next=newNode(5);
head->next->next->next->next->next->next=newNode(6);
head->next->next->next->next->next->next->next=newNode(7);
head->next->next->next->next->next->next->next->next=newNode(8);
head->next->next->next->next->next->next->next->next->next=newNode(9);
head->next->next->next->next->next->next->next->next->next->next=newNode(10);
reverse(head,k);
print(head);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4Kc3RydWN0IG5vZGUKewogICAgaW50IGluZm87CiAgICBzdHJ1Y3Qgbm9kZSogbmV4dDsKfTsKCm5vZGUqIG5ld05vZGUoaW50IGRhdGEpCnsKICAgIHN0cnVjdCBub2RlKiB0ZW1wID0gbmV3IG5vZGU7CiAgICB0ZW1wLT5pbmZvID0gZGF0YTsKICAgIHRlbXAtPm5leHQ9TlVMTDsKICAgICByZXR1cm4gKHRlbXApOwp9Cgp2b2lkIHByaW50KG5vZGUqIGhlYWQpCnsKCW5vZGUqIHB0cj1oZWFkOwoJd2hpbGUocHRyIT1OVUxMKQoJewoJCXByaW50ZigiJWQtPiIscHRyLT5pbmZvKTsKCQlwdHI9cHRyLT5uZXh0OwoJfQoJcHJpbnRmKCJOVUxMIik7CQp9Cgp2b2lkIHJldmVyc2Uobm9kZSogc3RhcnQsaW50IGspCnsKCWludCBhcnJba107CglpbnQgaV9zdGFydD0wOwoJbm9kZSogcHRyPXN0YXJ0OwoJCglmb3IoaW50IG09MDttPGs7bSsrKQoJewoJCWlmKHB0cj09TlVMTCkKCQlicmVhazsKCQkKCQlhcnJbay0xLW1dPXB0ci0+aW5mbzsKCQlpX3N0YXJ0PWstMS1tOwoJCXB0cj1wdHItPm5leHQ7Cgl9CgkKCXB0cj1zdGFydDsKCQoJZm9yKGludCBtPWlfc3RhcnQ7bTxrO20rKykKCXsKCQlpZihwdHI9PU5VTEwpCgkJcmV0dXJuOwoJCQoJCXB0ci0+aW5mbz1hcnJbbV07CgkJcHRyPXB0ci0+bmV4dDsKCX0KCQoJcmV2ZXJzZShwdHIsayk7CQp9CgoKaW50IG1haW4oKQp7CglpbnQgaz0yOwoJCglub2RlKiBoZWFkPW5ld05vZGUoMCk7CgloZWFkLT5uZXh0PW5ld05vZGUoMSk7CgloZWFkLT5uZXh0LT5uZXh0PW5ld05vZGUoMik7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoMyk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoNCk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoNSk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoNik7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoNyk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoOCk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoOSk7CgloZWFkLT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0LT5uZXh0PW5ld05vZGUoMTApOwoJCQoJcmV2ZXJzZShoZWFkLGspOwoJcHJpbnQoaGVhZCk7CglyZXR1cm4gMDsKfQ==