Linked List Learning
An interactive playground for linked lists. Write JavaScript to
manipulate the list object — the diagram updates live after
each run. Pick a template to get started, or write your own code.
Click a node to inspect it; drag to reorder;
hover a node for edit and delete icons.
REPL
Templates
Quick Reference
list.append(v) |
Add v to tail |
list.prepend(v) |
Add v to head |
list.insertAt(i, v) |
Insert at index i |
list.delete(v) |
Remove first node with value v |
list.deleteAt(i) |
Remove node at index i |
list.find(v) |
Returns index of v, or -1 |
list.get(i) |
Value at index i |
list.set(i, v) |
Set value at index i |
list.reverse() |
Reverse in place |
list.length() |
Number of nodes |
list.toArray() |
Returns JS array of values |
list.clear() |
Empty the list |
list.head |
First Node (has .value, .next) |
console.log(…) |
Print to output panel |
Quick Reference
list.append(v) |
Add v to tail |
list.prepend(v) |
Add v to head |
list.insertAt(i, v) |
Insert at index i |
list.delete(v) |
Remove first node with value v |
list.deleteAt(i) |
Remove node at index i |
list._unlink(node) |
Unlink a node object directly |
list.find(v) |
Returns index of v, or -1 |
list.get(i) |
Value at index i |
list.set(i, v) |
Set value at index i |
list.reverse() |
Reverse in place (rewires prev/next) |
list.length() |
Number of nodes |
list.toArray() |
Forward traversal as array |
list.toArrayReverse() |
Backward traversal via .prev |
list.clear() |
Empty the list |
list.head |
First node (has .value, .prev, .next) |
list.tail |
Last node (has .value, .prev, .next) |
console.log(…) |
Print to output panel |
Diagram
Nodes: 0