题解 | #用两个栈实现队列#TOP42

思路:
1.一个栈存值
2.取值的时候,如果第二个栈是空的,则把第一个栈的元素全部取出,放到栈2中,栈2取出元素不就符合先进先出了么

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() {
        //队列 先进先出
        //stack1 栈中  每次取最底部的元素弹出
        if(stack2.isEmpty()){
           while(!stack1.isEmpty()){
               stack2.push(stack1.pop());
           } 
        }
        if(!stack2.isEmpty()){
            return stack2.pop();
        }
        return -1;
    }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 13:05
TMD找工作本来就烦,这东西什么素质啊😡
Beeee0927:hr是超雄了,不过也是有道理的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 14:10
啊啊啊啊好幸福,妈妈是我找工作发疯前的一束光
榕城小榕树:你是我见过最幸福的牛客男孩
点赞 评论 收藏
分享
05-22 12:44
已编辑
门头沟学院 golang
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务