Arrays have a fundamental limitation: inserting or deleting elements in the middle costs because you must shift everything after the change.
Linked lists solve this problem. Each node stores a value and a pointer to the next node. To insert, you update two pointers. work regardless of list size.
The tradeoff? You lose random access. Finding the -th element requires walking steps from the head. But in many algorithms, you only need sequential access anyway. In this section, I'll teach you pointer manipulation patterns that appear constantly in interviews: reversal, fast-slow pointers for cycle detection, and merging sorted lists.