刷题-栈和队列

  1. [Leetcode 232] (剑指OFFER面试题 9)
    解法:一个栈(push栈)用于接收push,一个栈(pop栈)用于top(peek)和pop
    当pop栈为空,且push栈不为空时,将push栈的元素转移到pop栈中
    当pop栈不为空时,将pop栈的数据pop出去
    push操作只在push栈进行

注意:
leetcode上可以不进行异常处理,能a过,但是面试时候最好还是加上空栈的异常处理。
泛型支持。
线程安全。

2.[Leetcode 155] 最小栈 (剑指Offer面试题30)
解法:双栈实现,一个栈用于正常的入栈出栈,一个栈用于记录最小值

代码:

  1. [Leetcode 946] (剑指Offer面试题31)
    解法:双栈模拟,或者通过判断输入栈栈顶元素是否与验证栈当前指针所指元素相等。
    代码: