Я пытаюсь реализовать связанный список в Java.В моем основном классе я получаю некоторые целые числа от пользователя и помещаю их в связанный список, а затем распечатываю элементы связанного списка.Пока все работает нормально, но я думаю, что в моем основном классе имеет смысл сначала распечатать данные каждого элемента, а затем перейти к следующему элементу.Когда я это делаю, он не печатает последний элемент моего списка, но печатает первый элемент дважды.Я решил сначала перейти к следующему элементу, а затем распечатать данные предыдущего элемента, и он работает просто отлично !!!Может кто-нибудь объяснить, почему? (Посмотрите две последние строки моего кода).
public class Node {
Node next;
int data;
public Node(int data){
this.data=data;
}
}
Мой класс связанного списка:
public class LinkedList {
Node head;
public void append(int data){
if(head==null){
head=new Node(data);
}
Node current;
current=head;
while(current.next!=null){
current=current.next;
}
current.next=new Node(data);
}
}
Мой основной класс:
public class Main {
static LinkedList linkedList =new LinkedList();
public static void main(String [] args){
System.out.println("please enter numbers you wanna store in a linked list");
Scanner scanner=new Scanner(System.in);
while (scanner.hasNextInt()){
linkedList.append(scanner.nextInt());
}
if (linkedList.head!=null){
Node current;
current=linkedList.head;
while (current.next!=null){
**current=current.next;
System.out.println(current.data);**
}
}
}
}