繁体   English   中英

链表添加和删除无法正常工作,Java

[英]linkedlist add and remove not working as expected, Java

下面的代码是一个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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM