https://www.youtube.com/watch?v=Hj_rA0dhr2I
A linked list is a sequential list of nodes that hold data which point to other nodes also containing data.

Where are linked lists used:
- Used in many List, Queue & Stack implementations.
- Great for creating circular lists.
- Can easily model real world objects such as trains.
- Used in separate chaining, which is present certain Hashtable implementations to deal with hashing collisions.
- Often used in the implementation of adjacency lists for graphs.
Terminology
Head: The first node in a linked list
Tail: The last node in a linked list
Pointer: Reference to another node
Node: An object containing data and pointer(s).
