编程语言
首页 > 编程语言> > 用两个栈实现队列--剑指offer05(java实现)

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

作者:互联网

题目描述

用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。

解题思路

入队列操作不变,出队列操作由于是先进先出,故使用另一个栈将出栈元素保存在stack2中,取到最里面的元素,再将stack1中的元素出栈存回stack1中。

源码

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() {
        int result;
        while(stack1.size() > 0)
            stack2.push(stack1.pop());
        result = stack2.pop();
        while(stack2.size() > 0)
            stack1.push(stack2.pop());
        return result;
    }
}

标签:java,队列,pop,offer05,int,stack2,Stack,stack1
来源: https://blog.csdn.net/weixin_43728163/article/details/100174549