#include <iostream>
using namespace std;
struct Node
{
int data;
Node* next;
};
void printNode(Node* n)
{
if(n != 0)
{
cout<<n->data<<" ";
printNode(n->next);
}
}
Node* insertNth(Node* head, int data, int position)
{
Node* node = head;
for(int i=0; i<position;i++)
{
node = node->next;
}
Node* n1 = new Node;
n1->next = node;
n1->data = data;
return n1;
}
int main() {
// your code goes here
Node* n1 = new Node;
n1->data = 1;
Node* n2 = new Node;
n2->data = 2;
Node* n3 = new Node;
n3->data = 3;
n1->next = n2;
n2->next = n3;
n3->next = 0;
printNode(n1);
insertNth(n1,4,1);
cout<<endl;
printNode(n1);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IE5vZGUKewoJaW50IGRhdGE7CglOb2RlKiBuZXh0Owp9OwoKdm9pZCBwcmludE5vZGUoTm9kZSogbikKewoJaWYobiAhPSAwKQoJewoJCWNvdXQ8PG4tPmRhdGE8PCIgIjsKCQlwcmludE5vZGUobi0+bmV4dCk7Cgl9Cn0KCk5vZGUqIGluc2VydE50aChOb2RlKiBoZWFkLCBpbnQgZGF0YSwgaW50IHBvc2l0aW9uKQp7CglOb2RlKiBub2RlID0gaGVhZDsKCQoJZm9yKGludCBpPTA7IGk8cG9zaXRpb247aSsrKQoJewoJCW5vZGUgPSBub2RlLT5uZXh0OwoJfQoJTm9kZSogbjEgPSBuZXcgTm9kZTsKCW4xLT5uZXh0ID0gbm9kZTsKCW4xLT5kYXRhID0gZGF0YTsKCQoJcmV0dXJuIG4xOwp9CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCQoJTm9kZSogbjEgPSBuZXcgTm9kZTsKCW4xLT5kYXRhID0gMTsKCU5vZGUqIG4yID0gbmV3IE5vZGU7CgluMi0+ZGF0YSA9IDI7CglOb2RlKiBuMyA9IG5ldyBOb2RlOwoJbjMtPmRhdGEgPSAzOwoJCgluMS0+bmV4dCA9IG4yOwoJbjItPm5leHQgPSBuMzsKCW4zLT5uZXh0ID0gMDsKCQoJcHJpbnROb2RlKG4xKTsKCWluc2VydE50aChuMSw0LDEpOwoJY291dDw8ZW5kbDsKCXByaW50Tm9kZShuMSk7CgkKCXJldHVybiAwOwp9