Java 显示链接列表的第一个节点
我能够得到链表的第一个值,但它只在这种情况下有效。如何使getFirst()能够处理链表中存储的任意数量的值 此程序输出:第一个数字是-->1Java 显示链接列表的第一个节点,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
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:)