Design/reiterate or code reuse for linked list
No, it would not be good design. That method signature says "you can insert an element at any point in the list" and then the body says "but only if it's the place I want you to put it." This is why the Collections API doesn't have a sorted list, but rather allows lists to be sorted. Sorted and Unsorted lists share some contract, but insertion is fundamentally different for them. Unless your assignment requires it, I would not put them in the same inheritance hierarchy, and I'd be leery of putting them under the same interface (contract) unless it didn't include addition of elements.