【问题标题】:How to make pop() method to return and delete the second element in the stack?如何使 pop() 方法返回并删除堆栈中的第二个元素?
【发布时间】:2015-04-23 01:46:11
【问题描述】:

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

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

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

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

【问题讨论】:

  • 为什么你需要这样做?

标签: java data-structures linked-list stack


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-09-08
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2011-08-15
    相关资源
    最近更新 更多