# Leetcode 232. Implement Queue using Stack ![](https://i.imgur.com/3PnRMRY.png) ```python class MyQueue: def __init__(self): self.stack1 = [] self.stack2 = [] def push(self, x: int) -> None: self.stack1.append(x) def pop(self) -> int: if not self.empty(): while self.stack1: num = self.stack1.pop() self.stack2.append(num) output = self.stack2.pop() while self.stack2: num = self.stack2.pop() self.stack1.append(num) return output def peek(self) -> int: if not self.empty(): while self.stack1: num = self.stack1.pop() self.stack2.append(num) output = self.stack2[-1] while self.stack2: num = self.stack2.pop() self.stack1.append(num) return output def empty(self) -> bool: return len(self.stack1) == 0 # Your MyQueue object will be instantiated and called as such: # obj = MyQueue() # obj.push(x) # param_2 = obj.pop() # param_3 = obj.peek() # param_4 = obj.empty() ``` 2023.08.13 AC ```python! class MyQueue: def __init__(self): self.stack = [] def push(self, x: int) -> None: self.stack.append(x) def pop(self) -> int: n = len(self.stack) temp = [] i = 0 while i < n: temp.append(self.stack.pop()) i += 1 res = temp.pop() n = len(temp) i = 0 while i < n: self.stack.append(temp.pop()) i += 1 return res def peek(self) -> int: n = len(self.stack) temp = [] i = 0 while i < n: temp.append(self.stack.pop()) i += 1 res = temp[-1] n = len(temp) i = 0 while i < n: self.stack.append(temp.pop()) i += 1 return res def empty(self) -> bool: return len(self.stack) == 0 # Your MyQueue object will be instantiated and called as such: # obj = MyQueue() # obj.push(x) # param_2 = obj.pop() # param_3 = obj.peek() # param_4 = obj.empty() ```