《剑指offer》用两个栈实现队列

题目描述

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

思路:

栈1用来存原始的数据,将栈1的所有数据出栈并装到栈2内,栈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() {           
      while(!stack2.empty())
         {    
            stack2.pop();
         } 
      while(!stack1.empty())
         {    
            stack2.push(stack1.pop());
         }
      int k =stack2.pop();
      while(!stack1.empty())
         {    
            stack1.pop();
         }
      while(!stack2.empty())
         {    
            stack1.push(stack2.pop());
         }
      return k;
    }
}

猜你喜欢

转载自blog.csdn.net/gsch_12/article/details/80792547
今日推荐