栈和队列--用两个栈来实现一个队列

牛客网连接:https://www.nowcoder.com/practice/54275ddae22f475981afa2244dd448c6

思路说明:设置两个栈,in栈负责push数据,out栈负责pop数据,当想要push实收直接in.push,当想要出队列的时候,in栈先出,在进入out栈,这时候第一个push栈的数据就在out栈顶,也就达到了先进先出队列的思想。

import java.util.Stack;

public class Solution {
    Stack<Integer> in = new Stack<Integer>();
    Stack<Integer> out = new Stack<Integer>();
    public void push(int node) {
        in.push(node);
    }

    public int pop() {
        if (out.isEmpty()){
            while (!in.isEmpty()){
                out.push(in.pop());
            }
        }
        if(out.isEmpty()){
            return 0;
        }
        return out.pop();
    }
}

 

原文地址:https://www.cnblogs.com/qidi/p/11623377.html