Linked lists have advantages and disadvantages when compared to array-based implementations of the List interface. The primary disadvantage is that we lose the ability to access any element using $$\mathtt{get(i)}$$ or $$\mathtt{set(i,x)}$$ in constant time. Instead, we have to walk through the list, one element at a time, until we reach the $$\mathtt{i}$$th element. The primary advantage is that they are more dynamic: Given a reference to any list node $$\mathtt{u}$$, we can delete $$\mathtt{u}$$ or insert a node adjacent to $$\mathtt{u}$$ in constant time. This is true no matter where $$\mathtt{u}$$ is in the list.