A linked list is a linear data structure where nodes are linked using pointers. Each node contains a data field for storing elements and a pointer field for linking to the next node. There are different types of linked lists including singly linked lists where each node has a pointer to the next node, doubly linked lists where each node has a pointer to both the next and previous nodes, and circular linked lists where the last node is linked to the first node. Common operations on linked lists include insertion, deletion, traversal, searching, and sorting of nodes. Linked lists have advantages over arrays for dynamic memory allocation and efficient insertion/deletion but have disadvantages for random access and memory usage.