Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示链接列表的第一个节点_Java_Nodes - Fatal编程技术网

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

Java 显示链接列表的第一个节点,java,nodes,Java,Nodes,我能够得到链表的第一个值,但它只在这种情况下有效。如何使getFirst()能够处理链表中存储的任意数量的值 此程序输出:第一个数字是-->1 public class LinkedListFirst { public static void main(String[] args) { MyLinkedList list = new MyLinkedList(); list.addFirst(1); list.addFirst(2); l

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

根据你上面的评论,我认为你实际上是在追求清单中的最后一项

考虑这种方法:

public void getLast()
{
    Node current = first;
    while(current.link != null){
        current = current.link;
    }
    System.out.println("First number is ---> " + current.x);
}
你的一些困惑可能是因为你使用“first”这个词太过松散。是的,您确实首先添加了数字1,但由于您将项目添加到列表的开头,因此它现在是列表的最后一项


我希望这会有帮助。

应该
getFirst()
只需返回
first
?我想可能会有一些术语混淆。你真的在列表中最后一项之后吗?@GBlodgett当我这样做时,它只返回值3而不是1。你知道为什么吗?@JonathanWilson因为我首先在列表中插入了值1,所以我想返回该值。为什么它会返回1?我会在调试器中运行它,看看发生了什么,以及为什么print语句中有一个小的输入错误:)谢谢@mettleap:)