По некоторым причинам, люди, которые все еще учатся программировать, делают вещи намного сложнее, чем они должны быть. Я сделал это, когда я изучал Java, я все еще делаю это, когда только начинаю изучать новый язык, и студенты, которых я отметил, находят новые и удивительные способы сделать это. В вашей вставке происходит больше, чем нужно, например, метод, который вставляет значение по определенному индексу, не должен проверять, является ли он первым вставляемым элементом (не говоря, что он не должен проверять границы). Вот псевдокод того, что я бы сделал.
insert(index, value)
if index>size
throw null pointer
traverse to index -1 //lets call this nodeI
create newnode and set value
set newnode.next to nodeI.next
set nodeI.next to newnode
increase size.
Пара полезных советов для вас, у вас должна быть функция для получения элемента из списка ссылок, который возвращает узел? открытый узел elementAt (int index) например? используйте это, чтобы просмотреть связанный список. Если вы хотите добавить в связанный список, попробуйте это
append(value)
insert(size-1,value)
а если вы хотите вставить в начале? та же идея
insert(value)
insert(0,value)