Add a new node at a specific position in a linked list.
Remove the node at a specific position from a linked list.
Make a linked list point backwards so the last node becomes the first.
Figure out if a linked list loops back on itself instead of ending at null.
Find exactly which node a linked list starts looping at.
Find the middle element of a linked list in one pass without knowing its length.
Combine two sorted linked lists into one sorted linked list.
Clone a linked list where each node also has a random pointer to any other node in the list.
Build a cache with a fixed capacity. When full, evict the least recently used item. Both get and put should be O(1).