所以,我使用链接节点编写了Stack
的实现,但我想在pop()
旁边添加一个方法,该方法将删除Linkedstack
中不是顶部的第二项项目。我知道实现堆栈的目的是只能删除顶部项目,但我需要实现此方法。
这是我已有的pop()
方法的代码:
public T pop() {
T top = peek();
if (topNode != null)
topNode = topNode.getNextNode();
return top;
}
所以我想做的是让一个新的node
指向链中的第二个元素,这样我就可以返回它的值,然后让topNode
指向第一个节点,然后它第一个节点指向链中的第三个节点,因此第二个节点被删除。
我只是不知道如何实现这一点。
答案 0 :(得分:3)
您可以执行两个常规弹出操作来删除前两个元素,然后将第一个元素推回到堆栈顶部并返回弹出的第二个元素。