5 用两个栈实现队列
题目描述
用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。
1 import java.util.Stack; 2 3 public class Solution { 4 Stack<Integer> stack1 = new Stack<Integer>(); 5 Stack<Integer> stack2 = new Stack<Integer>(); 6 7 public void push(int node) { 8 stack1.push(node); 9 } 10 11 public int pop() { 12 if(stack1.empty()&& stack2.empty()) 13 throw new RuntimeException("Queue is empty!"); 14 15 if(stack2.empty()){ 16 while(!stack1.empty()){ 17 stack2.push(stack1.pop()); 18 } 19 } 20 return stack2.pop(); 21 } 22 }
20180303
1 # -*- coding:utf-8 -*- 2 class Solution: 3 def __init__(self): 4 self.stack1=[] 5 self.stack2=[] 6 def push(self, node): 7 # write code here 8 self.stack1.append(node) 9 def pop(self): 10 # return xx 11 if self.stack2==[]: 12 while self.stack1!=[]: 13 self.stack2.append(self.stack1.pop(-1)) 14 return self.stack2.pop(-1)