Linked lists are data structures containing nodes that have a value and a reference to the next (and previous) node.

Compared to arrays, the complexity of dynamic insertion and deletion is constant time, there is no need to shift the indices when modifying the list. (If reaching the desired node is included here, obviously it’s O(n)).

In a singly linked list, each node points only to the next one, so you can traverse the list in a single direction forward. If you lose reference to a previous node, you cannot access it again.