题解 | #用两个栈实现队列#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;
    }
}
全部评论

相关推荐

听说改名字就能收到offer哈:Radis写错了兄弟
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务