#include <iostream>
using namespace std;
// Define the Node structure
struct Node {
int data;
Node* next;
Node(int val) : data(val), next(nullptr) {}
};
// Function to insert a new node at the end
void insertAtEnd(Node*& head, int val) {
Node* newNode = new Node(val);
if (!head) {
head = newNode;
} else {
Node* temp = head;
while (temp->next) temp = temp->next;
temp->next = newNode;
}
}
// Function to convert array to linked list
Node* arrayToLinkedList(int arr[], int size) {
Node* head = nullptr;
for (int i = 0; i < size; ++i) {
insertAtEnd(head, arr[i]);
}
return head;
}
// Function to print the linked list
void printList(Node* head) {
while (head) {
cout << head->data << " -> ";
head = head->next;
}
cout << "NULL" << endl;
}
// Main function
int main() {
int arr[] = {10, 20, 30, 40, 50};
int size = sizeof(arr) / sizeof(arr[0]);
Node* head = arrayToLinkedList(arr, size);
printList(head);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gRGVmaW5lIHRoZSBOb2RlIHN0cnVjdHVyZQpzdHJ1Y3QgTm9kZSB7CiAgICBpbnQgZGF0YTsKICAgIE5vZGUqIG5leHQ7CiAgICBOb2RlKGludCB2YWwpIDogZGF0YSh2YWwpLCBuZXh0KG51bGxwdHIpIHt9Cn07CgovLyBGdW5jdGlvbiB0byBpbnNlcnQgYSBuZXcgbm9kZSBhdCB0aGUgZW5kCnZvaWQgaW5zZXJ0QXRFbmQoTm9kZSomIGhlYWQsIGludCB2YWwpIHsKICAgIE5vZGUqIG5ld05vZGUgPSBuZXcgTm9kZSh2YWwpOwogICAgaWYgKCFoZWFkKSB7CiAgICAgICAgaGVhZCA9IG5ld05vZGU7CiAgICB9IGVsc2UgewogICAgICAgIE5vZGUqIHRlbXAgPSBoZWFkOwogICAgICAgIHdoaWxlICh0ZW1wLT5uZXh0KSB0ZW1wID0gdGVtcC0+bmV4dDsKICAgICAgICB0ZW1wLT5uZXh0ID0gbmV3Tm9kZTsKICAgIH0KfQoKLy8gRnVuY3Rpb24gdG8gY29udmVydCBhcnJheSB0byBsaW5rZWQgbGlzdApOb2RlKiBhcnJheVRvTGlua2VkTGlzdChpbnQgYXJyW10sIGludCBzaXplKSB7CiAgICBOb2RlKiBoZWFkID0gbnVsbHB0cjsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgaW5zZXJ0QXRFbmQoaGVhZCwgYXJyW2ldKTsKICAgIH0KICAgIHJldHVybiBoZWFkOwp9CgovLyBGdW5jdGlvbiB0byBwcmludCB0aGUgbGlua2VkIGxpc3QKdm9pZCBwcmludExpc3QoTm9kZSogaGVhZCkgewogICAgd2hpbGUgKGhlYWQpIHsKICAgICAgICBjb3V0IDw8IGhlYWQtPmRhdGEgPDwgIiAtPiAiOwogICAgICAgIGhlYWQgPSBoZWFkLT5uZXh0OwogICAgfQogICAgY291dCA8PCAiTlVMTCIgPDwgZW5kbDsKfQoKLy8gTWFpbiBmdW5jdGlvbgppbnQgbWFpbigpIHsKICAgIGludCBhcnJbXSA9IHsxMCwgMjAsIDMwLCA0MCwgNTB9OwogICAgaW50IHNpemUgPSBzaXplb2YoYXJyKSAvIHNpemVvZihhcnJbMF0pOwoKICAgIE5vZGUqIGhlYWQgPSBhcnJheVRvTGlua2VkTGlzdChhcnIsIHNpemUpOwogICAgcHJpbnRMaXN0KGhlYWQpOwoKICAgIHJldHVybiAwOwp9