#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef struct node {
int data;
struct node *next;
} Node;
void traverseLinkedList(Node *start) {
while(start) {
//printf("Node");
cout << start->data << "->";
start = start->next;
}
cout << "NULL" << endl;
}
int main() {
Node *start = (Node*) malloc(sizeof(Node));
Node *a = (Node*) malloc(sizeof(Node));
Node *b = (Node*) malloc(sizeof(Node));
start->data = 0;
a->data = 1;
b->data = 2;
start->next = a;
a->next = b;
traverseLinkedList(start);
traverseLinkedList(a);
traverseLinkedList(b);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdHlwZWRlZiBzdHJ1Y3Qgbm9kZSB7CglpbnQgZGF0YTsKCXN0cnVjdCBub2RlICpuZXh0Owp9IE5vZGU7Cgp2b2lkIHRyYXZlcnNlTGlua2VkTGlzdChOb2RlICpzdGFydCkgewoJd2hpbGUoc3RhcnQpIHsKCQkvL3ByaW50ZigiTm9kZSIpOwoJCWNvdXQgPDwgc3RhcnQtPmRhdGEgPDwgIi0+IjsKCQlzdGFydCA9IHN0YXJ0LT5uZXh0OwoJfQoJY291dCA8PCAiTlVMTCIgPDwgZW5kbDsKfQppbnQgbWFpbigpIHsKCU5vZGUgKnN0YXJ0ID0gKE5vZGUqKSBtYWxsb2Moc2l6ZW9mKE5vZGUpKTsKCU5vZGUgKmEgPSAoTm9kZSopIG1hbGxvYyhzaXplb2YoTm9kZSkpOwoJTm9kZSAqYiA9IChOb2RlKikgbWFsbG9jKHNpemVvZihOb2RlKSk7CglzdGFydC0+ZGF0YSA9IDA7CglhLT5kYXRhID0gMTsKCWItPmRhdGEgPSAyOwoJc3RhcnQtPm5leHQgPSBhOwoJYS0+bmV4dCA9IGI7Cgl0cmF2ZXJzZUxpbmtlZExpc3Qoc3RhcnQpOwoJdHJhdmVyc2VMaW5rZWRMaXN0KGEpOwoJdHJhdmVyc2VMaW5rZWRMaXN0KGIpOwoJcmV0dXJuIDA7Cn0K