I've been studying closely about the List abstract data type - As I understand it can be implemented with linked-list and/or arrays, and really maybe with any other data types as well.
But to satisfy a list, it means to have methods:
- that allow for insertion at desire 'position'.
- removal at desired 'position'.
- access data at nth position.
- prepend on the list
- append on the list
- empty check.
- search by value. (necessary or not?)
- delete at end (necessary or not?)
- delete at front (necessary or not?)
(note: different sources seem to omit some or have additional ones - makes it extra frustrating without some standardization of what is core except assumptions)
Additionally for practice/interviews, these are things I could point out in words.
Java Implementation: https://brilliant.org/wiki/linked-lists/
C++ Implementation (last couple pages): https://math.hws.edu/eck/cs327_s04/chapter2.pdf