A linked list is a linear collection of nodes containing data and pointers to the next node, developed in the 1950s for information processing. There are three types: singly linked lists (one-direction), doubly linked lists (bi-direction), and circular linked lists (where the last node points back to the first). While linked lists allow dynamic memory allocation and easy insertion/deletion, they can use more memory and require sequential access, making reverse traversal difficult.