Поскольку метод возвращает void, вам следует изменить список, который предоставляется в качестве входных данных. Я покажу вам, почему на примере
public static void insertSorted(LinkedList<Integer> list, int value) {
LinkedList<Integer> list2 = new LinkedList<Integer>(list); //this means you are creating a new list of integers called list 2 with the same elements of the list "list" in the same order
//some code to add value to list2 maintaing the sorting
//no return needed
}
где-то еще вы хотите вызвать этот метод
LinkedList<Integer> list = new LinkedList<Integer>();
list.Add(1);
list.Add(2);
list.Add(5);
for (Integer i : list) System.out.println(i);
//prints 1, 2 , 5
insertSorted(list,4);
for (Integer i : list) System.out.println(i);
//still prints 1, 2 , 5!
, если теперь вы запускаете этот код с помощью отладчика и прерываете метод insertSorted сразу после того, как вы вставили значение в list2, вы увидите, что список «list» останется таким же, каким был в начале метода (который равен (1,2,5)), а список «list2» будет (1,2 , 4,5).
Но вызывающий метод ничего не знает о list2 !!!
Когда вы объявляете переменную в методе, она умирает, когда метод завершается (если вы ее не вернете). Конечно, вам следует обратить внимание на "псевдонимы", но это не так.
Ваши требования очень ясны: ваш метод должен изменять ввод, а не создавать новый список.
Вы не можете понять, почему вы должны создавать новый объект только потому, что вам это не нужно. Кто-то только что дал вам неправильное предложение :)
Теперь вам нужно перебрать список и вставить целое число в нужное место :)