显示链接列表的第一个节点

时间:2018-12-04 23:08:10

标签: java nodes

我能够获得链表的第一个值,但是它仅在这种情况下有效。如何使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);
 }
}

1 个答案:

答案 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 项。列表。

我希望有帮助。