A doubly linked list.
You never know when you're going to need one.
Optional
Insert a node into the list between the given nodes.
It goes without saying that the prev/next nodes must be adjacent to each other in the list, or exceptions will be thrown.
prev
next
Remove the node at the head of the list and return it.
Remove the node at the tail of the list and return it.
Insert a node at the head of the list.
Insert a node at the tail of the list.
Remove a node from the list.
A doubly linked list.
You never know when you're going to need one.