Во-первых, я бы настоятельно рекомендуем вам переименовать классы. Классы Java всегда должны начинаться с заглавной буквы (верхний случай верблюда). А переменные и методы всегда должны быть ниже верблюжьего случая (исключение: статические конечные переменные часто являются все-шапки).
Теперь на ваш вопрос: Ваша ошибка заключается в следующем: внутри ваших методов, если вы назначаете новое значение переменной head
, которая присваивается методу, это изменение влияет только на переменную head
, которая предоставляется методу (только в области методов). Если вы хотите изменить фактическую переменную head
, вам нужно назначить новое значение непосредственно классам переменной head
.
В зависимости от вашего потребительной случае, есть 3 решения:
- Вам необходимо несколько экземпляров вашей реализации LinkedList:
- изменить методы
insertBegin
и display
, чтобы быть не статичным.
- Удалить первый параметр методов, так как они теперь могут получить доступ к переменной
head
класса
- Вам нужно только один экземпляр вашей реализации LinkedList (не очень хорошее решение):
- Сделайте вашу переменную голову внутри класса
static
- Удалить первый параметр методов, так как они теперь могут получить доступ к переменной
head
класса
- Вы хотите сохранить статический/нестатический шаблон для переменных/методов (по какой-либо причине):
- изменить поведение переменной
head
: Теперь не хранит фактические данные, но вместо этого сохраняет фактическое (с данными) в качестве переменной nextNode
.
display
теперь всегда читает начиная с head.nextValue
insertBegin
Теперь не придется переписывать фактическую переменную голову. он имеет только установить свою переменную nextNode
нового главы
Если вы хотите, я могу дать вам пример одного из этих случаев. Я просто не хотел их выписывать и позволял тебе самому разбираться.
Если вы хотите улучшить свои навыки Java, я также хотел бы предложить вам взглянуть на различные варианты видимости для переменных и методов (частные, защищенный, общественности, по умолчанию)
Поскольку вы воссоздаете колесо (не уверен, что это тоже поговорка на английском тоже ...), я бы предположил, что это домашнее задание. Поэтому вы должны хотя бы объяснить, что происходит в этом коде. PS: Добро пожаловать на SO, см. [Ask] – AxelH
Вы говорите, что неправильно вставлены, но вы не говорите, в чем проблема. Пожалуйста, обновите сообщение, чтобы быть более конкретным. – Aaron
Том, чтобы избежать путаницы, я бы переименовал ссылку в ссылку «singlylinkedlist», поскольку у вас есть класс и экземпляр с тем же именем. –