java链表实现打印无限循环中的第一个元素
我正在尝试实现链表,我不明白这段代码有什么问题。 进入无限循环打印1。。。第一次调用insert()时,将实例化开始节点
节点
public class Node {
int data;
Node next;
public Node(int data, Node next) {
super();
this.data = data;
this.next = next;
}
public Node()
{
super();
}
}
LinkedList
public class LinkedList {
Node start = null;
void insert(int value)
{
Node current;
current = start;
if(start == null)
{
start = new Node(value, null);
start.data = value;
start.next = null;
}
else
{
while(current.next != null)
{
current = current.next;
}
current.next = new Node();
current.next.data = value;
current.next.next = null;
}
}
void show()
{
Node curr = start;
while(curr.next != null)
{
System.out.println(curr.data);
}
}
public static void main(String[] args) {
LinkedList ll = new LinkedList();
ll.insert(1);
ll.insert(7);
ll.insert(5);
ll.insert(3);
ll.insert(9);
ll.show();
}
}
# 1 楼答案
在的while循环中使用
curr = curr.next;
# 2 楼答案
将
show()
方法更改如下:# 3 楼答案
在
show()
方法中,缺少以下内容:curr = curr.next
打印当前节点的值后