我能够获得链表的第一个值,但是它仅在这种情况下有效。如何使getFirst()能够用于链接列表中存储的任意数量的值?
该程序输出:第一个数字是-> 1
public class LinkedListFirst
{
public static void main(String[] args)
{
MyLinkedList list = new MyLinkedList();
list.addFirst(1);
list.addFirst(2);
list.addFirst(3);
list.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 getFirst()
{
System.out.println( "First Number is --> " + first.link.link.x);
}
}
答案 0 :(得分:2)
根据上面的评论,我认为您实际上在列表中的最后一项之后。
考虑此方法:
public void getLast()
{
Node current = first;
while(current.link != null){
current = current.link;
}
System.out.println("First number is ---> " + current.x);
}
您可能会因您过于随意地使用“第一”一词而感到困惑。是的,您确实添加了数字1 first ,但是由于您将项目添加到列表的开头,因此它现在是列表的 last 项。列表。
我希望有帮助。