题目链接

    使用两个队列

    1. class MyStack {
    2. private Queue<Integer> a;//输入队列
    3. private Queue<Integer> b;//输出队列
    4. public MyStack() {
    5. a = new LinkedList<>();
    6. b = new LinkedList<>();
    7. }
    8. public void push(int x) {
    9. a.offer(x);
    10. // 将b队列中元素全部转给a队列
    11. while(!b.isEmpty())
    12. a.offer(b.poll());
    13. // 交换a和b,避免重新把数据移回去
    14. Queue temp = a;
    15. a = b;
    16. b = temp;
    17. }
    18. public int pop() {
    19. return b.poll();
    20. }
    21. public int top() {
    22. return b.peek();
    23. }
    24. public boolean empty() {
    25. return b.isEmpty();
    26. }
    27. }