Linked Structures
Insert at Head
Insert a new first node by pointing it at the old head and then moving the head pointer.
Algorithm
Basic Implementation
basic.js
class Node {
constructor(value, next = null) {
this.value = value;
this.next = next;
}
}
function render(head) {
const parts = [];
let cursor = head;
while (cursor !== null) {
parts.push(String(cursor.value));
cursor = cursor.next;
}
return parts.join(" -> ") + " -> null";
}
let head = new Node(20, new Node(30));
const newHead = new Node(10);
newHead.next = head;
head = newHead;
console.log(render(head));
Complexity
- Time: O(1)
- Space: O(1)
Implementation notes
- Keep the explicit node and pointer/reference operations; array shortcuts hide the linked-list state this lesson is meant to replay.
- The final output prints the chain in a deterministic
a -> b -> nullform for cross-language comparison.
old head
The previous first node becomes the second node.
constant-time insert
Only the new node and head pointer change.