java - 如何使 pop() 方法返回并删除堆栈中的第二个元素?

标签 java data-structures linked-list stack

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

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

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

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

最佳答案

可以通过两次常规的出栈操作来移除前两个元素,然后将第一个元素推回栈顶,并返回出栈的第二个元素。

关于java - 如何使 pop() 方法返回并删除堆栈中的第二个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28644934/

相关文章:

java - 调用构造函数后从 main 调用私有(private)包方法

java - 如何 "program"一个可以容纳多种类型元素的包?

C#序列化数据

algorithm - Trie 实现 - 将元素插入到 trie 中

C++ 未找到 << 运算符,它采用右手操作数

data-structures - 高效实现不可变(双重)链表

java - 将 JPanel 图形导出为 .png 或 .gif 或 .jpg

java - 重写 servlet 中的 doGet

Java正则表达式从字符串中分割负数和正数

c++ - 打印链接列表 - 访问冲突 C++