Linked lists are a linear data structure composed of nodes, where each node contains a value and a pointer to the next node. There are several types of linked lists including singly linked lists where each node points to the next but not the previous, doubly linked lists where each node points to both the next and previous node, and circular linked lists where the last node loops back to the first node. Linked lists allow for dynamic memory allocation and easy insertion and deletion of nodes.