A linked list is a dynamic, linear data structure where nodes contain data and pointers to the next node, allowing efficient memory usage. It supports operations such as insertion, deletion, and searching with various types including singly, doubly, and circular linked lists. Compared to arrays, linked lists offer advantages like dynamic sizing and non-contiguous memory storage.