Mental Model
Use two stacks to mimic the behavior of a queue by reversing the order twice.
Analogy: Imagine you have two trays of plates. You put plates on the first tray (stack1). When you want to serve the oldest plate, you flip all plates onto the second tray (stack2), reversing their order, so the oldest plate is now on top and ready to serve.
stack1: top -> [] [] [] stack2: top -> [] [] [] Queue front is at the top of stack2 if not empty; otherwise, transfer from stack1.
