java - 如何找到链表中的第一个值?

标签 java methods linked-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 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/

相关文章:

java - LinkedListStack System.out.println

c - 模拟 'strings' UNIX 命令的 C 程序运行时崩溃

java - Android 新手 - 无法将示例项目导入 Eclipse

java - Maven 连接问题

java - 另一个类中的 SQL 更新

java - 无状态和有状态 bean 区别的 EJB 示例

iphone - 从另一个 ViewController 调用方法

c++ - 使用类似模板的机制调用具有相同签名的不同方法

c - 为什么我的链接列表中有 0 个节点?当我在 getCount 函数中 printf count 时,它写入 0,但应该有 3 个节点从文件中读取

java - Java 接口(interface)的包装方法实现