我有一个给定的链接列表,我需要通过 getFirst 方法找到列表中的第一个值。如果该值为空,我需要显示一条错误消息并退出程序。链接列表已经给了我链接,所以:
class MyLinkedList
{
private class Node // inner class
{
private Node link;
private int x;
}
//----------------------------------
private Node first = null; // initial value is null
//----------------------------------
public void addFirst(int d)
{
Node newNode = new Node(); // create new node
newNode.x = d; // init data field in new node
newNode.link = first; // new node points to first node
first = newNode; // first now points to new node
}
//----------------------------------
public void traverse()
{
Node p = first;
while (p != null) // do loop until p goes null
{
System.out.println(p.x); // display data
p = p.link; // move p to next node
}
}
}
//==============================================
class TestMyLinkedList
{
public static void main(String[] args)
{
MyLinkedList list = new MyLinkedList();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
System.out.println("Numbers on list");
list.traverse();
}
}
这是我尝试过的方法:
public static Node getFirst(Node list)
{
if (list == null)
{
System.out.println("Error!");
System.exit(1);
}
return MyLinkedList.first;
}
我知道这并不完全正确,我们刚刚在类里面开始这个,所以我很难理解它是怎么回事。谢谢!
最佳答案
我认为你应该看看https://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html并初步了解链表的行为。一旦您了解了它的行为方式,您就可以考虑如何围绕它添加功能。现在你只有一个方法,你调用的次数超出了你应该调用的次数。创建一个接口(interface)并记录它也可能有所帮助,这样您就知道每个方法应该做什么。
关于java - 如何找到链表中的第一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53624675/