#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
void insert(ListNode *&head,int value)
{
if(!head)
{
ListNode *&node = head;
node = new ListNode(value); //change head using node..
}
else
{
ListNode *node = head;
while(node->next != NULL)
{
node = node->next;
}
node->next = new ListNode(value);
}
}
void print(ListNode *head)
{
ListNode *node = head;
for(;node!=NULL;){
printf("%d ",node->val);
node = node->next;
}
}
int main(int argc,char *argv[])
{
ListNode *head = NULL;
insert(head, 5);
insert(head, 1);
insert(head, 2);
insert(head, 3);
print(head);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4Kc3RydWN0IExpc3ROb2RlIHsKIGludCB2YWw7CiBMaXN0Tm9kZSAqbmV4dDsKIExpc3ROb2RlKGludCB4KSA6IHZhbCh4KSwgbmV4dChOVUxMKSB7fQp9OwoKdm9pZCBpbnNlcnQoTGlzdE5vZGUgKiZoZWFkLGludCB2YWx1ZSkKewogICAgaWYoIWhlYWQpCiAgICB7CiAgICAgICAgTGlzdE5vZGUgKiZub2RlID0gaGVhZDsKICAgICAgICBub2RlID0gbmV3IExpc3ROb2RlKHZhbHVlKTsgLy9jaGFuZ2UgaGVhZCB1c2luZyBub2RlLi4KICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICBMaXN0Tm9kZSAqbm9kZSA9IGhlYWQ7CgogICAgICAgIHdoaWxlKG5vZGUtPm5leHQgIT0gTlVMTCkKICAgICAgICB7CiAgICAgICAgICAgIG5vZGUgPSBub2RlLT5uZXh0OwogICAgICAgIH0KICAgICAgICBub2RlLT5uZXh0ID0gbmV3IExpc3ROb2RlKHZhbHVlKTsKICAgIH0KfQoKdm9pZCBwcmludChMaXN0Tm9kZSAqaGVhZCkKewogICAgTGlzdE5vZGUgKm5vZGUgPSBoZWFkOwogICAgZm9yKDtub2RlIT1OVUxMOyl7CiAgICAgICAgcHJpbnRmKCIlZCAiLG5vZGUtPnZhbCk7CiAgICAgICAgbm9kZSA9IG5vZGUtPm5leHQ7CiAgICB9Cn0KaW50IG1haW4oaW50IGFyZ2MsY2hhciAqYXJndltdKQp7CiAgICBMaXN0Tm9kZSAqaGVhZCA9IE5VTEw7CiAgICBpbnNlcnQoaGVhZCwgNSk7CiAgICBpbnNlcnQoaGVhZCwgMSk7CiAgICBpbnNlcnQoaGVhZCwgMik7CiAgICBpbnNlcnQoaGVhZCwgMyk7CiAgICBwcmludChoZWFkKTsKICAgIHJldHVybiAwOwp9Cg==