剑指offer---05---用栈实现队列

Posted buptyuhanwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer---05---用栈实现队列相关的知识,希望对你有一定的参考价值。

题意
给了两个栈去实现队列
 
分析
两个栈如下情况
      1
      2
4    3
这个时候就不能够把4插入到第二个弹出栈了否则弹出顺序出错。
所以这个时候就应该等第二个栈空了的时候再弹出。
 
代码
import java.util.Stack;
public class Solution {
    Stack<Integer> stack1 = new Stack<Integer>();
    Stack<Integer> stack2 = new Stack<Integer>();
    
    public void push(int node) {
        stack1.push(node);
    }
    
    public int pop() {
        if(stack2.isEmpty()){
            while(!stack1.isEmpty()){
                int node = stack1.pop();
                stack2.push(node);
            }
        }
        return stack2.pop();
    }
}

以上是关于剑指offer---05---用栈实现队列的主要内容,如果未能解决你的问题,请参考以下文章

剑指offer 05 用两个栈实现队列

剑指offer05- 用两个栈实现队列(java)

剑指Offer数据结构

剑指 Offer(第 2 版)完整题解笔记 & C++代码实现(LeetCode版)

剑指 Offer(第 2 版)完整题解笔记 & C++代码实现(LeetCode版)

刷题记录leetcode 剑指 Offer(第 2 版)03-11