下面的代码是一个Queue,应该添加和删除整数值,但是该函数无法正常工作。仅添加前两个值,并且remove函数显示空指针异常。
此外,迭代器类不对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/