#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);
}
node* reverse(node* start,int k)
{
node *curr=start,*prev,*next,*end;
int i=0;
prev=end;
end=start;
if(curr==NULL)
return NULL;
while(i<k && curr!=NULL)
{
next=curr->next;
curr->next=prev;
prev=curr;
curr=next;
i++;
}
end->next=reverse(curr,k);
return prev;
}
void print(node* head)
{
node* ptr=head;
while(ptr!=NULL)
{
printf("%d->",ptr->info);
ptr=ptr->next;
}
printf("NULL");
}
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);
head=reverse(head,k);
print(head);
return 0;
}
I2luY2x1ZGU8c3RkaW8uaD4Kc3RydWN0IG5vZGUKewogICAgaW50IGluZm87CiAgICBzdHJ1Y3Qgbm9kZSogbmV4dDsKfTsKCm5vZGUqIG5ld05vZGUoaW50IGRhdGEpCnsKICAgIHN0cnVjdCBub2RlKiB0ZW1wID0gbmV3IG5vZGU7CiAgICB0ZW1wLT5pbmZvID0gZGF0YTsKICAgIHRlbXAtPm5leHQ9TlVMTDsKICAgICByZXR1cm4gKHRlbXApOwp9Cgpub2RlKiByZXZlcnNlKG5vZGUqIHN0YXJ0LGludCBrKQp7CQkKCQoJbm9kZSAqY3Vycj1zdGFydCwqcHJldiwqbmV4dCwqZW5kOwoJaW50IGk9MDsKCXByZXY9ZW5kOwoJZW5kPXN0YXJ0OwoJaWYoY3Vycj09TlVMTCkKCXJldHVybiBOVUxMOwoJCgl3aGlsZShpPGsgJiYgIGN1cnIhPU5VTEwpCgkKCXsKCW5leHQ9Y3Vyci0+bmV4dDsKCWN1cnItPm5leHQ9cHJldjsKCXByZXY9Y3VycjsKCWN1cnI9bmV4dDsJCglpKys7Cgl9CgllbmQtPm5leHQ9cmV2ZXJzZShjdXJyLGspOwoJcmV0dXJuIHByZXY7CQp9Cgp2b2lkIHByaW50KG5vZGUqIGhlYWQpCnsKCW5vZGUqIHB0cj1oZWFkOwoJd2hpbGUocHRyIT1OVUxMKQoJewoJCXByaW50ZigiJWQtPiIscHRyLT5pbmZvKTsKCQlwdHI9cHRyLT5uZXh0OwoJfQoJcHJpbnRmKCJOVUxMIik7CQp9CgppbnQgbWFpbigpCnsKCWludCBrPTI7CgkKCW5vZGUqIGhlYWQ9bmV3Tm9kZSgwKTsKCWhlYWQtPm5leHQ9bmV3Tm9kZSgxKTsKCWhlYWQtPm5leHQtPm5leHQ9bmV3Tm9kZSgyKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSgzKTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSg0KTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSg1KTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSg2KTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSg3KTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSg4KTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSg5KTsKCWhlYWQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQtPm5leHQ9bmV3Tm9kZSgxMCk7CgkJCgloZWFkPXJldmVyc2UoaGVhZCxrKTsKCXByaW50KGhlYWQpOwoJcmV0dXJuIDA7Cn0=