#include <stdlib.h> //NULL
#include <stdio.h> //printf
typedef struct Node {
int val;
struct Node* next;
} node;
node* make_ll(int len){
node
* head
= malloc(sizeof(node
)); node* cur = head;
for (int i = 0; i < len; i++) {
cur->val = i;
cur
->next
= (i
< (len
- 1)) ? malloc(sizeof(node
)) : NULL
; cur = cur->next;
}
return head;
}
void print_ll(node* head){
node* cur = head;
while (cur != NULL) {
printf("Node: %d @ %p\n", cur
->val
, cur
); cur = cur->next;
}
}
int main(){
node* ll = make_ll(4);
print_ll(ll);
}
I2luY2x1ZGUgPHN0ZGxpYi5oPiAvL05VTEwKI2luY2x1ZGUgPHN0ZGlvLmg+ICAvL3ByaW50ZgoKdHlwZWRlZiBzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgdmFsOwogICAgc3RydWN0IE5vZGUqIG5leHQ7Cn0gbm9kZTsKCm5vZGUqIG1ha2VfbGwoaW50IGxlbil7CiAgICBub2RlKiBoZWFkID0gbWFsbG9jKHNpemVvZihub2RlKSk7CiAgICBub2RlKiBjdXIgPSBoZWFkOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykgewogICAgICAgIGN1ci0+dmFsID0gaTsKICAgICAgICBjdXItPm5leHQgPSAoaSA8IChsZW4gLSAxKSkgPyBtYWxsb2Moc2l6ZW9mKG5vZGUpKSA6IE5VTEw7CiAgICAgICAgY3VyID0gY3VyLT5uZXh0OwogICAgfQogICAgcmV0dXJuIGhlYWQ7Cn0KCnZvaWQgcHJpbnRfbGwobm9kZSogaGVhZCl7CiAgICBub2RlKiBjdXIgPSBoZWFkOwogICAgd2hpbGUgKGN1ciAhPSBOVUxMKSB7CiAgICAgICAgcHJpbnRmKCJOb2RlOiAlZCBAICVwXG4iLCBjdXItPnZhbCwgY3VyKTsKICAgICAgICBjdXIgPSBjdXItPm5leHQ7CiAgICB9Cn0KCmludCBtYWluKCl7CiAgICBub2RlKiBsbCA9IG1ha2VfbGwoNCk7CiAgICBwcmludF9sbChsbCk7CiAgICBmcmVlKGxsKTsKfQ==