Linked Lists offer several advantages over comparable data structures such as static or dynamically expanding arrays.
- LinkedLists does not require contiguous blocks of memory and therefore can help reduce memory fragmentation
- LinkedLists support efficient removal of elements (dynamic arrays usually force a shift in all of the elements).
- LinkedLists support efficient addition of elements (dynamic arrays can cause a re-allocation + copy, if a particular add exceeds the current capacity)
Any place where these advantages would be significantly valuable to a program (and the disadvantages of a LinkedList were negligible) would be a place to use a LinkedList.