A linked list is a dynamic data structure composed of nodes that contain data and a pointer to the next node. It allows for dynamic memory allocation, unlike arrays which have a fixed size. Common operations on linked lists include creation, insertion, deletion, traversal, and searching of nodes. There are different types of linked lists such as singly linked lists, circular linked lists, and doubly linked lists.