В вашем коде есть несколько ошибок. Основная ошибка здесь, в вашем классе Node
:
static Node head=null;
Поле head
не должно быть static
. Измените его на это:
private Node head = null;
Вам также потребуется изменить остальную часть кода, чтобы установить переменную head
соответствующим образом: метод add
должен возвращать вновь созданный Node
вместо void
, а в методе main
вам нужно использовать возвращаемое значение.
Почему неправильно делать это static
: потому что static
делает его переменной уровня класса, совместно используемой все экземпляры класса, и это не то, что вам нужно.
Дополнительная информация: Понимание членов класса
Кроме того, метод printlist
не требует Node
в качестве аргумента. Просто заставьте его работать на Node
, на котором вы его вызываете.