Queues are essential whenever you need to process items in order or explore level by level. Here are the most common patterns you'll encounter in interviews.
Pattern 1: Breadth-First Search (BFS)
BFS explores nodes level by level, using a queue to track which nodes to visit next. This is the most fundamental queue pattern.
Pattern 2: Level Order Tree Traversal
Process a binary tree level by level, returning nodes grouped by their depth. The key is to track the size of each level.
Pattern 3: Shortest Path (Unweighted)
BFS finds the shortest path in an unweighted graph because it explores all nodes at distance k before nodes at distance k+1.
Alternative: track distance instead of full path for better memory.
Pattern 4: Matrix BFS
BFS on a 2D grid, exploring in 4 (or 8) directions from each cell. Common for flood fill, island counting, and maze problems.
Pattern 5: Minimum Depth of Tree
BFS finds the minimum depth efficiently because it stops as soon as it finds the first leaf node.
Pattern 6: Rotting Oranges
Multi-source BFS: start from multiple nodes simultaneously and spread outward. Track the time/distance as you go.
Pattern 7: Word Ladder
Transform one word to another, changing one letter at a time. Each valid word is a node, and edges connect words that differ by one letter.
Common Interview Tips
Always use deque: It's the standard way to implement queues in Python with O(1) operations.
Mark visited before enqueueing: To avoid adding duplicates, mark nodes as visited when you add them, not when you process them.
Track level information: For level-based problems, process all nodes at the current level before moving on.
BFS = shortest path: In unweighted graphs, BFS guarantees the shortest path.