#include <iostream>
using namespace std;
struct node {
node* next;
int value;
};
class linklist {
private:
node* head;
public:
linklist() {
head = nullptr;
}
void insert(int value) {
node* newnode = new node;
newnode->value = value;
newnode->next = nullptr;
// If the list is empty
if (head == nullptr) {
head = newnode;
}
else {
node* temp = head;
while (temp->next != nullptr) {
temp = temp->next;
}
temp->next = newnode;
}
}
void traverse() {
node* temp = head;
while (temp != nullptr) {
cout << temp->value << " ";
temp = temp->next;
}
cout << endl;
}
};
int main() {
linklist list;
list.insert(10);
list.insert(20);
list.traverse();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IG5vZGUgewogICAgbm9kZSogbmV4dDsKICAgIGludCB2YWx1ZTsKfTsKCmNsYXNzIGxpbmtsaXN0IHsKcHJpdmF0ZToKICAgIG5vZGUqIGhlYWQ7CgpwdWJsaWM6CiAgICBsaW5rbGlzdCgpIHsKICAgICAgICBoZWFkID0gbnVsbHB0cjsKICAgIH0KCiAgICB2b2lkIGluc2VydChpbnQgdmFsdWUpIHsKICAgICAgICBub2RlKiBuZXdub2RlID0gbmV3IG5vZGU7CgogICAgICAgIG5ld25vZGUtPnZhbHVlID0gdmFsdWU7CiAgICAgICAgbmV3bm9kZS0+bmV4dCA9IG51bGxwdHI7CgogICAgICAgIC8vIElmIHRoZSBsaXN0IGlzIGVtcHR5CiAgICAgICAgaWYgKGhlYWQgPT0gbnVsbHB0cikgewogICAgICAgICAgICBoZWFkID0gbmV3bm9kZTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG5vZGUqIHRlbXAgPSBoZWFkOwoKICAgICAgICAgICAgd2hpbGUgKHRlbXAtPm5leHQgIT0gbnVsbHB0cikgewogICAgICAgICAgICAgICAgdGVtcCA9IHRlbXAtPm5leHQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHRlbXAtPm5leHQgPSBuZXdub2RlOwogICAgICAgIH0KICAgIH0KCiAgICB2b2lkIHRyYXZlcnNlKCkgewogICAgICAgIG5vZGUqIHRlbXAgPSBoZWFkOwoKICAgICAgICB3aGlsZSAodGVtcCAhPSBudWxscHRyKSB7CiAgICAgICAgICAgIGNvdXQgPDwgdGVtcC0+dmFsdWUgPDwgIiAiOwogICAgICAgICAgICB0ZW1wID0gdGVtcC0+bmV4dDsKICAgICAgICB9CgogICAgICAgIGNvdXQgPDwgZW5kbDsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgbGlua2xpc3QgbGlzdDsKCiAgICBsaXN0Lmluc2VydCgxMCk7CiAgICBsaXN0Lmluc2VydCgyMCk7CgogICAgbGlzdC50cmF2ZXJzZSgpOwoKICAgIHJldHVybiAwOwp9Cg==