A linear collection of data nodes linked together through unidirectional pointer addresses. Each node encapsulates a data value and a reference pointer to the successor node.
Unlike contiguous arrays, linked list nodes are allocated dynamically in heap memory and chained via explicit memory pointers. The sequence originates at the Head reference and terminates with a NULL pointer.
Each node occupies distinct non-contiguous memory addresses (e.g. ABC001) and stores an explicit reference to its successor node.
Prepend requires only redirecting the new node's next pointer to the old head and updating head in O(1) time without element shifting.
Deleting a node at index k requires linking node k-1 directly to node k+1, bypassing the target node.
Linked lists avoid resizing costs and wasted capacity but introduce pointer memory overhead and lose O(1) random indexing capability.