java - 链表添加和删除未按预期工作,Java

标签 java iterator

以下代码是一个队列,应该添加和删除整数值,但该函数未按预期工作。仅添加前两个值,并且删除函数显示空指针异常。 此外,迭代器类不会迭代 Integer 值。它会导致无限循环。原因是什么?

谢谢。

最佳答案

add 方法中的这两行似乎正在创建一个循环:

front.next = previousNode;
previousNode.next = front;

这里的循环导致迭代无限循环。

我认为您需要的只是将前一个节点的下一个节点设置为新节点。

previousNode.next = front;

此外,remove 方法的这一部分似乎不正确:

E n = back.element;
back = back.next;
if (back == null)
    front = null;
else
    back.next = null;

这里的问题是您每次都将 back.next 设置为 null,这会使您丢失队列的其余部分。

为了解决这个问题,您只需删除 else 部分,以便保留旧的下一个部分。

E n = back.element;
back = back.next;
if (back == null)
    front = null;

关于java - 链表添加和删除未按预期工作,Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42869987/

相关文章:

java - 具有四个运算符的字符串表达式

java - 使用 Simple 设置 XML 反序列化类(XNA 到 Java 移植)

java - 当我的编译器告诉我正在使用不安全或未经检查的操作时,这意味着什么?

java - 文件读取器库输出 null

java - 具有独特解决方案的递归问题

java - 如何访问struts if标签的test属性中的属性

java - struts2中迭代两个List

Python 生成器行为

scala - 从项的迭代器创建子序列的迭代器

C++ 类型的解引用迭代器