Podpowiedź: pare warunków
1) gdy elementów jest nieparzyście/ parzyście
2) jest mniej np od 3 / brak elementów itd
Te przypadki rozwaz, następnie każdy inny przypadek postępuje już podobnie [ jesli elementów jest więcej niz np 2 ] to zawsze wyznacz srodek z elementów obecnych i wstaw tam element, jeśli dysponujesz tylko i wyłącznie List Iteratorem
to pewnie ograniczony jestes do metod takich https://docs.oracle.com/javase/7/docs/api/java/util/ListIterator.html
z kolei nie mówisz jaka to lista? Więc możesz mieć metode add(miejsce,vartość) :) która dodaje po obliczeniu miejsca element, wtedy nie musisz przesuwać elementów
w Pesymistycznym przypadku
Wyliczasz środek z obecnych elementów ( matematyka ) - wstawiasz element i potem
Zakładając tablicę A [ N]ZA[N], ma już n ( n < N)n(n<N)elementy i chcesz wstawić nowy element w ija-ta komórka, musisz przesunąć elementy ijado nnjedna komórka dalej, a następnie umieścić swój nowy element w komórce Ija.
public class Test {
public static void main(String[] args) {
LinkedList< Integer > list = new LinkedList<Integer>() ;
getIterator( list ).add( 10 );
getIterator( list ).add( 20 );
getIterator( list ).add( 30 );
getIterator( list ).add( 40 );
getIterator( list ).add( 50 );
getIterator( list ).add( 60 );
System.out.println( list );
}
private static ListIterator<Integer> getIterator(LinkedList<Integer> list) {
return list.listIterator( list.size() / 2 );
}
}