有人可以用我编写的代码帮助我解决此问题吗?
运行时,它不会打印出链表的值。我不明白这是什么问题,运行代码时,编译器一直显示空白屏幕。
public class Node {
int data;
Node next;
public static void main (String Args [])
{
Link object = new Link ();
object.insert(15);
object.insert(30);
object.insert(50);
object.insert(70);
object.show();
}
}
public class Link {
Node head;
void insert (int data)
{
Node node = new Node();
node.data=data;
if (head == null)
{
node=head;
}
else
{
Node n = head;
while (n.next != null)
{
n=n.next;
}
n.next=node;
}
}
void show ()
{
Node n = head;
while (n != null)
{
System.out.println(n.data);
n=n.next;
}
}
}
答案 0 :(得分:1)
您的代码正在执行此操作:
if (head == null)
{
node=head;
}
这会将head
中的null设置为变量node
。您未设置head
的值。
您应该这样做(将node
的值设置为变量head
):
if (head == null)
{
head = node;
}
答案 1 :(得分:1)
在Link类中,您需要更改以下内容:
if (head == null)
{
node=head; //<-- change this to head = node;
}
答案 2 :(得分:0)
??您必须那样做吗? Java已经有了LinkedList
实用程序,使其变得更容易。