5. You have a singly linked list representing a queue: 5 -> 10 -> 15 -> 20 -> null. You want to insert a new value 12 exactly in the middle position (between 10 and 15). Which code snippet correctly inserts 12 at position 3?
function insertAtPosition(head, value, position) {
let newNode = { value: value, next: null };
if (position === 1) {
newNode.next = head;
return newNode;
}
let current = head;
let count = 1;
while (count < position - 1 && current != null) {
current = current.next;
count++;
}
if (current == null) return head;
newNode.next = current.next;
current.next = newNode;
return head;
}
let head = { value: 5, next: { value: 10, next: { value: 15, next: { value: 20, next: null } } } };
head = insertAtPosition(head, 12, 3);
// Print list
let result = [];
let temp = head;
while(temp) {
result.push(temp.value);
temp = temp.next;
}
console.log(result);
What is the output?