我希望LinkedStack中的pop()方法返回并删除堆栈中的第二个元素而不是第一个元素

时间:2015-02-21 10:56:24

标签: java data-structures linked-list stack pop

所以,我使用链接节点编写了Stack的实现,但我想在pop()旁边添加一个方法,该方法将删除Linkedstack中不是顶部的第二项项目。我知道实现堆栈的目的是只能删除顶部项目,但我需要实现此方法。

这是我已有的pop()方法的代码:

public T pop() {
    T top = peek();
    if (topNode != null)
        topNode = topNode.getNextNode();
    return top;
}

所以我想做的是让一个新的node指向链中的第二个元素,这样我就可以返回它的值,然后让topNode指向第一个节点,然后它第一个节点指向链中的第三个节点,因此第二个节点被删除。

我只是不知道如何实现这一点。

1 个答案:

答案 0 :(得分:3)

您可以执行两个常规弹出操作来删除前两个元素,然后将第一个元素推回到堆栈顶部并返回弹出的第二个元素。