image.png

解决思路

压入(push)
当我们将一个元素从队列入队的时候,根据队列的性质这个元素会存在队列的后端。
但当我们实现一个栈的时候,最后入队的元素应该在前端,而不是在后端。为了实现这个目的,每当入队一个新元素的时候,我们可以把队列的顺序反转过来。

  1. public class MyStack {
  2. private LinkedList<Integer> q1;
  3. public MyStack(){
  4. q1 = new LinkedList<>();
  5. }
  6. public void push(int x){
  7. q1.add(x);
  8. int sz = q1.size();
  9. while(sz>1){
  10. q1.add(q1.remove());
  11. sz--;
  12. }
  13. }
  14. public int pop(){
  15. return q1.remove();
  16. }
  17. public int top(){
  18. return q1.peek();
  19. }
  20. public boolean empty(){
  21. return q1.isEmpty();
  22. }
  23. }