Linked lists are linear data structures where elements are linked using pointers. Each element contains a data field and a pointer to the next node. Elements are not stored at contiguous memory locations. There are three main types of linked lists: single, double, and circular. Operations like insertion and deletion on linked lists involve adjusting the pointers of neighboring nodes, allowing dynamic memory allocation and efficient addition/removal of elements compared to arrays.