在这段java代码中,当我在链表中输入4个整数类型的数字时,它只显示前3个作为输出所以你可以指导为什么会这样。当我在链表中只给出1个值时,当我给出2个值时它不会出现,它只显示第一个值作为输出。
这里只有输出显示4、34和5,但没有显示50。我不明白代码出了什么问题?
enter code here
import java.lang.*;
public class Main{
Node head;
static class Node{
int data;
Node next;
public Node(int d){
data=d;
next=null;
}
}
public void insertFirst(int data)
{
Node n=new Node(data);
n.next=head;
head=n;
}
public void insertLast(int data){
Node n=new Node(data);
if(head==null) {
head = n;
} else{
Node t=head;
while(t.next!=null)
{ t=t.next;}
t.next=n;
}
}
public void display(){
Node n=head;
if(n==null)
System.out.println("empty");
else
{
while(n.next!=null)
{
System.out.print(n.data+" ");
n=n.next;
}
}
}
public static void main(String [] args){
Main m=new Main();
m.insertFirst(34);
m.insertFirst(4);
m.insertLast(5);
m.insertLast(50);
m.display();
}
}
当您到达最后一个节点node.next == null
时,您不会打印它。
您需要更改display()
方法中的条件。
将while(n.next!=null)
更改为while(n != null)
。最后一个节点有n.next == null
,但您仍然应该打印它