java - 链表插入后

标签 java

我是一名刚学习Java的学生。我明天有一个大测试,我对某行代码感到困惑。

insertAfter 方法查找传递给该方法的 linkedList 中的数字,并在匹配后插入一个新节点。不明白怎么办

 curr.setNext(curr.getNext()) 

将带我们到列表中的下一个节点,该节点可能是我们正在查找的数字。那么这个命令是如何遍历链表的呢?

使用 curr=curr.getNext() 不是更有意义吗?

谢谢,抱歉,如果这很简单......我现在很困惑

// assume firstInList is in the list
public void insertAfter(int firstInList, Node toAdd){
    Node curr = head;

    while( curr.getData() != firstInList ){
        curr.setNext(curr.getNext());
    }

    curr.setNext(toAdd);        
}


   Node class
  {
   int getData() {return data};
   void setData(int data) {this.data =data};
   Node getNext() {return next};
   void setNext(Node next) {this.next = next};
  }

}

附加方法 该方法称为

   public void insertBefoe (Node, inList, Node toAdd)

最佳答案

看起来很清楚,代码应该是这样的:

curr = curr.getNext()

而不是

curr.setNext(curr.getNext());

此外,以下内容已损坏:

curr.setNext(toAdd);        

执行后,firstInList 之后的列表部分将丢失。

关于java - 链表插入后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15153870/

相关文章:

java - 在 Java CXF 客户端中实现双向 SSL

java - 如何在 TextView 中设置格式化的 JSON 响应字符串?

java - 我正在尝试检查电子邮件是否具有三个字母的扩展名,例如 ".com"或 ".net",但这不起作用

java - 在其他计算机上找不到主类错误

java - 使用 Reflections 库查询 Java 类路径中具有任意属性的类

java - 如何在从 cordova 创建的 native 代码中使用相同的 android SQLite DB?

java - ExecutorService 在 JUnit 测试中不执行 Runnables

java - 安卓工作室 : Could not set process working directory to "new directory"

Java:在断点调试期间在隐式队列中检测到 "gridlock"

java - 8 位主教占据整个棋盘 [回溯]