Linked lists are linear data structures where elements are linked using pointers. Unlike arrays, the elements of a linked list are not stored at contiguous memory locations. Linked lists allow for dynamic sizes and easier insertion/deletion of elements compared to arrays but have disadvantages like non-sequential access of elements and extra memory usage for pointers. A linked list node contains a data field and a pointer to the next node. A doubly linked list node also contains a pointer to the previous node, allowing traversal in both directions.