Breadth-First Search Pattern: Template + 233 LeetCode Problems

Expand outward level by level, so the first time you arrive is the shortest way.

  • 23 Easy
  • 148 Medium
  • 62 Hard
  • O(V + E) time

What the breadth-first search pattern is

Breadth-first search visits every node at distance k before any node at distance k+1, and that ordering is the entire reason to prefer it: on an unweighted graph the first time BFS reaches a node is guaranteed to be by a shortest path, so the search can stop the moment the target appears. Distance is tracked either by carrying it in the queue alongside the node, or by draining the queue one full level at a time — the level form is what you want when the answer is per-level, such as a right-side view or the maximum value on each row. Mark nodes as seen when they are enqueued, not when they are dequeued, or the same node enters the queue once per incoming edge and the cost stops being linear. The multi-source variant is worth recognising on sight: seeding the queue with every starting cell at once computes the distance from the nearest source for every cell in one pass, which is how rotting oranges and nearest-zero problems avoid running a separate BFS per source.

When to use it

  • The question is the minimum number of steps, moves, or transformations.
  • The graph is unweighted — with weights, this becomes Dijkstra and needs a heap.
  • The answer is per level: a level order, a right-side view, a level sum.
  • Distance from the nearest of several sources is needed, which one multi-source pass gives you.

The breadth-first search template in Python

The shape, not a solution to any one problem. Adapt the condition and the summary being maintained; the skeleton stays the same across the 233 problems listed below.

Breadth-First Search — Python template
from collections import deque

def shortest_steps(graph, start, goal):
    seen = {start}
    queue = deque([(start, 0)])

    while queue:
        node, steps = queue.popleft()
        if node == goal:
            return steps               # first arrival is the shortest one
        for neighbour in graph[node]:
            if neighbour not in seen:
                seen.add(neighbour)    # mark on ENQUEUE or the queue duplicates
                queue.append((neighbour, steps + 1))

    return -1

Complexity characteristics

Time
O(V + E)
Auxiliary space
O(V)

The same linear traversal cost as depth-first search: the difference is the order of the visits, not the amount of work. The queue holds the widest level rather than the deepest path, which on a wide graph or a filled grid is O(V) and can be considerably more memory than DFS uses on the same input. A multi-source pass costs the same single traversal however many sources are seeded, which is the whole reason to prefer it to one BFS per source.

All 233 breadth-first search LeetCode problems

Every problem in the library the breadth-first search pattern applies to, grouped by LeetCode's own difficulty rating. 185 of the 233 carry a complete Python solution with a worked example and complexity analysis; the rest are listed for completeness, with the LeetCode Premium ones marked.

Related LeetCode topics

Easy (23)

#ProblemDifficultyTopics
100Same TreeEasyTree, Depth-First Search, Breadth-First Search +1
101Symmetric TreeEasyTree, Depth-First Search, Breadth-First Search +1
104Maximum Depth of Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
111Minimum Depth of Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
112Path SumEasyTree, Depth-First Search, Breadth-First Search +1
226Invert Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
404Sum of Left LeavesEasyTree, Depth-First Search, Breadth-First Search +1
463Island PerimeterEasyDepth-First Search, Breadth-First Search, Array +1
530Minimum Absolute Difference in BSTEasyTree, Depth-First Search, Breadth-First Search +2
559Maximum Depth of N-ary TreeEasyTree, Depth-First Search, Breadth-First Search
617Merge Two Binary TreesEasyTree, Depth-First Search, Breadth-First Search +1
637Average of Levels in Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
653Two Sum IV - Input is a BSTEasyTree, Depth-First Search, Breadth-First Search +4
733Flood FillEasyDepth-First Search, Breadth-First Search, Array +1
933Number of Recent CallsEasyDesign, Queue, Data Stream
346Moving Average from Data StreamPremiumEasyDesign, Queue, Array +1
783Minimum Distance Between BST NodesEasyTree, Depth-First Search, Breadth-First Search +2
965Univalued Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
993Cousins in Binary TreeEasyTree, Depth-First Search, Breadth-First Search +1
1379Find a Corresponding Node of a Binary Tree in a Clone of That TreeEasyTree, Depth-First Search, Breadth-First Search +1
1469Find All The Lonely NodesPremiumEasyTree, Depth-First Search, Breadth-First Search +1
1971Find if Path Exists in GraphEasyDepth-First Search, Breadth-First Search, Union Find +1
2073Time Needed to Buy TicketsEasyQueue, Array, Simulation

Medium (148)

#ProblemDifficultyTopics
102Binary Tree Level Order TraversalMediumTree, Breadth-First Search, Binary Tree
103Binary Tree Zigzag Level Order TraversalMediumTree, Breadth-First Search, Binary Tree
107Binary Tree Level Order Traversal IIMediumTree, Breadth-First Search, Binary Tree
116Populating Next Right Pointers in Each NodeMediumTree, Depth-First Search, Breadth-First Search +2
117Populating Next Right Pointers in Each Node IIMediumTree, Depth-First Search, Breadth-First Search +2
130Surrounded RegionsMediumDepth-First Search, Breadth-First Search, Union Find +2
133Clone GraphMediumDepth-First Search, Breadth-First Search, Graph +1
199Binary Tree Right Side ViewMediumTree, Depth-First Search, Breadth-First Search +1
200Number of IslandsMediumDepth-First Search, Breadth-First Search, Union Find +2
207Course ScheduleMediumDepth-First Search, Breadth-First Search, Graph +1
210Course Schedule IIMediumDepth-First Search, Breadth-First Search, Graph +1
279Perfect SquaresMediumBreadth-First Search, Math, Dynamic Programming
310Minimum Height TreesMediumDepth-First Search, Breadth-First Search, Graph +1
322Coin ChangeMediumBreadth-First Search, Array, Dynamic Programming
365Water and Jug ProblemMediumDepth-First Search, Breadth-First Search, Math
399Evaluate DivisionMediumDepth-First Search, Breadth-First Search, Union Find +4
417Pacific Atlantic Water FlowMediumDepth-First Search, Breadth-First Search, Array +1
429N-ary Tree Level Order TraversalMediumTree, Breadth-First Search
433Minimum Genetic MutationMediumBreadth-First Search, Hash Table, String
449Serialize and Deserialize BSTMediumTree, Depth-First Search, Breadth-First Search +4
513Find Bottom Left Tree ValueMediumTree, Depth-First Search, Breadth-First Search +1
515Find Largest Value in Each Tree RowMediumTree, Depth-First Search, Breadth-First Search +1
529MinesweeperMediumDepth-First Search, Breadth-First Search, Array +1
54201 MatrixMediumBreadth-First Search, Array, Dynamic Programming +1
547Number of ProvincesMediumDepth-First Search, Breadth-First Search, Union Find +1
622Design Circular QueueMediumDesign, Queue, Array +1
623Add One Row to TreeMediumTree, Depth-First Search, Breadth-First Search +1
641Design Circular DequeMediumDesign, Queue, Array +1
655Print Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
662Maximum Width of Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
672Bulb Switcher IIMediumBit Manipulation, Depth-First Search, Breadth-First Search +1
684Redundant ConnectionMediumDepth-First Search, Breadth-First Search, Union Find +1
690Employee ImportanceMediumTree, Depth-First Search, Breadth-First Search +2
695Max Area of IslandMediumDepth-First Search, Breadth-First Search, Union Find +2
721Accounts MergeMediumDepth-First Search, Breadth-First Search, Union Find +4
743Network Delay TimeMediumDepth-First Search, Breadth-First Search, Graph +2
787Cheapest Flights Within K StopsMediumDepth-First Search, Breadth-First Search, Graph +3
841Keys and RoomsMediumDepth-First Search, Breadth-First Search, Graph
909Snakes and LaddersMediumBreadth-First Search, Array, Matrix
994Rotting OrangesMediumBreadth-First Search, Array, Matrix
1161Maximum Level Sum of a Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
1448Count Good Nodes in Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
1466Reorder Routes to Make All Paths Lead to the City ZeroMediumDepth-First Search, Breadth-First Search, Graph
1926Nearest Exit from Entrance in MazeMediumBreadth-First Search, Array, Matrix
261Graph Valid TreePremiumMediumDepth-First Search, Breadth-First Search, Union Find +1
281Zigzag IteratorPremiumMediumDesign, Queue, Array +1
286Walls and GatesPremiumMediumBreadth-First Search, Array, Matrix
314Binary Tree Vertical Order TraversalPremiumMediumTree, Depth-First Search, Breadth-First Search +3
323Number of Connected Components in an Undirected GraphPremiumMediumDepth-First Search, Breadth-First Search, Union Find +1
339Nested List Weight SumPremiumMediumDepth-First Search, Breadth-First Search
364Nested List Weight Sum IIPremiumMediumStack, Depth-First Search, Breadth-First Search
490The MazePremiumMediumDepth-First Search, Breadth-First Search, Array +1
505The Maze IIPremiumMediumDepth-First Search, Breadth-First Search, Graph +4
582Kill ProcessPremiumMediumTree, Depth-First Search, Breadth-First Search +2
694Number of Distinct IslandsPremiumMediumDepth-First Search, Breadth-First Search, Union Find +2
737Sentence Similarity IIPremiumMediumDepth-First Search, Breadth-First Search, Union Find +3
742Closest Leaf in a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
752Open the LockMediumBreadth-First Search, Array, Hash Table +1
785Is Graph Bipartite?MediumDepth-First Search, Breadth-First Search, Union Find +1
797All Paths From Source to TargetMediumDepth-First Search, Breadth-First Search, Graph +1
802Find Eventual Safe StatesMediumDepth-First Search, Breadth-First Search, Graph +1
863All Nodes Distance K in Binary TreeMediumTree, Depth-First Search, Breadth-First Search +2
865Smallest Subtree with all the Deepest NodesMediumTree, Depth-First Search, Breadth-First Search +2
886Possible BipartitionMediumDepth-First Search, Breadth-First Search, Union Find +1
919Complete Binary Tree InserterMediumTree, Breadth-First Search, Design +1
934Shortest BridgeMediumDepth-First Search, Breadth-First Search, Array +1
950Reveal Cards In Increasing OrderMediumQueue, Array, Sorting +1
958Check Completeness of a Binary TreeMediumTree, Breadth-First Search, Binary Tree
959Regions Cut By SlashesMediumDepth-First Search, Breadth-First Search, Union Find +3
967Numbers With Same Consecutive DifferencesMediumBreadth-First Search, Backtracking
1020Number of EnclavesMediumDepth-First Search, Breadth-First Search, Union Find +2
1034Coloring A BorderMediumDepth-First Search, Breadth-First Search, Array +1
1042Flower Planting With No AdjacentMediumDepth-First Search, Breadth-First Search, Graph
1087Brace ExpansionPremiumMediumStack, Breadth-First Search, String +2
1091Shortest Path in Binary MatrixMediumBreadth-First Search, Array, Matrix
1102Path With Maximum Minimum ValuePremiumMediumDepth-First Search, Breadth-First Search, Union Find +4
1123Lowest Common Ancestor of Deepest LeavesMediumTree, Depth-First Search, Breadth-First Search +2
1129Shortest Path with Alternating ColorsMediumBreadth-First Search, Graph
1162As Far from Land as PossibleMediumBreadth-First Search, Array, Dynamic Programming +1
1197Minimum Knight MovesPremiumMediumBreadth-First Search
1202Smallest String With SwapsMediumDepth-First Search, Breadth-First Search, Union Find +4
1215Stepping NumbersPremiumMediumBreadth-First Search, Math, Backtracking
1236Web CrawlerPremiumMediumDepth-First Search, Breadth-First Search, String +1
1242Web Crawler MultithreadedPremiumMediumDepth-First Search, Breadth-First Search, Concurrency
1245Tree DiameterPremiumMediumTree, Depth-First Search, Breadth-First Search +2
1254Number of Closed IslandsMediumDepth-First Search, Breadth-First Search, Union Find +2
1257Smallest Common RegionPremiumMediumTree, Depth-First Search, Breadth-First Search +3
1261Find Elements in a Contaminated Binary TreeMediumTree, Depth-First Search, Breadth-First Search +3
1267Count Servers that CommunicateMediumDepth-First Search, Breadth-First Search, Union Find +3
1273Delete Tree NodesPremiumMediumTree, Depth-First Search, Breadth-First Search +1
1302Deepest Leaves SumMediumTree, Depth-First Search, Breadth-First Search +1
1306Jump Game IIIMediumDepth-First Search, Breadth-First Search, Array
1311Get Watched Videos by Your FriendsMediumBreadth-First Search, Graph, Array +2
1315Sum of Nodes with Even-Valued GrandparentMediumTree, Depth-First Search, Breadth-First Search +1
1319Number of Operations to Make Network ConnectedMediumDepth-First Search, Breadth-First Search, Union Find +1
1361Validate Binary Tree NodesMediumTree, Depth-First Search, Breadth-First Search +3
1376Time Needed to Inform All EmployeesMediumTree, Depth-First Search, Breadth-First Search
1391Check if There is a Valid Path in a GridMediumDepth-First Search, Breadth-First Search, Union Find +2
1430Check If a String Is a Valid Sequence from Root to Leaves Path in a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
1443Minimum Time to Collect All Apples in a TreeMediumTree, Depth-First Search, Breadth-First Search +1
1457Pseudo-Palindromic Paths in a Binary TreeMediumBit Manipulation, Tree, Depth-First Search +2
1462Course Schedule IVMediumDepth-First Search, Breadth-First Search, Graph +1
1485Clone Binary Tree With Random PointerPremiumMediumTree, Depth-First Search, Breadth-First Search +2
1490Clone N-ary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
1519Number of Nodes in the Sub-Tree With the Same LabelMediumTree, Depth-First Search, Breadth-First Search +2
1559Detect Cycles in 2D GridMediumDepth-First Search, Breadth-First Search, Union Find +2
1602Find Nearest Right Node in Binary TreePremiumMediumTree, Breadth-First Search, Binary Tree
1609Even Odd TreeMediumTree, Breadth-First Search, Binary Tree
1625Lexicographically Smallest String After Applying OperationsMediumDepth-First Search, Breadth-First Search, String +1
1631Path With Minimum EffortMediumDepth-First Search, Breadth-First Search, Union Find +4
1654Minimum Jumps to Reach HomeMediumBreadth-First Search, Array, Dynamic Programming
1660Correct a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +2
1670Design Front Middle Back QueueMediumDesign, Queue, Array +2
1730Shortest Path to Get FoodPremiumMediumBreadth-First Search, Array, Matrix
1740Find Distance in a Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +2
1765Map of Highest PeakMediumBreadth-First Search, Array, Matrix
1778Shortest Path in a Hidden GridPremiumMediumDepth-First Search, Breadth-First Search, Array +2
1810Minimum Path Cost in a Hidden GridPremiumMediumDepth-First Search, Breadth-First Search, Graph +5
1823Find the Winner of the Circular GameMediumRecursion, Queue, Array +2
1905Count Sub IslandsMediumDepth-First Search, Breadth-First Search, Union Find +2
1992Find All Groups of FarmlandMediumDepth-First Search, Breadth-First Search, Array +1
1993Operations on TreeMediumTree, Depth-First Search, Breadth-First Search +3
2039The Time When the Network Becomes IdleMediumBreadth-First Search, Graph, Array
2059Minimum Operations to Convert NumberMediumBreadth-First Search, Array
2101Detonate the Maximum BombsMediumDepth-First Search, Breadth-First Search, Graph +3
2146K Highest Ranked Items Within a Price RangeMediumBreadth-First Search, Array, Matrix +2
2174Remove All Ones With Row and Column Flips IIPremiumMediumBit Manipulation, Breadth-First Search, Array +1
2192All Ancestors of a Node in a Directed Acyclic GraphMediumDepth-First Search, Breadth-First Search, Graph +1
2316Count Unreachable Pairs of Nodes in an Undirected GraphMediumDepth-First Search, Breadth-First Search, Union Find +1
2368Reachable Nodes With RestrictionsMediumTree, Depth-First Search, Breadth-First Search +4
2385Amount of Time for Binary Tree to Be InfectedMediumTree, Depth-First Search, Breadth-First Search +2
2415Reverse Odd Levels of Binary TreeMediumTree, Depth-First Search, Breadth-First Search +1
2445Number of Nodes With Value OnePremiumMediumTree, Depth-First Search, Breadth-First Search +2
2467Most Profitable Path in a TreeMediumTree, Depth-First Search, Breadth-First Search +2
2471Minimum Number of Operations to Sort a Binary Tree by LevelMediumTree, Breadth-First Search, Binary Tree
2477Minimum Fuel Cost to Report to the CapitalMediumTree, Depth-First Search, Breadth-First Search +1
2492Minimum Score of a Path Between Two CitiesMediumDepth-First Search, Breadth-First Search, Union Find +1
2556Disconnect Path in a Binary Matrix by at Most One FlipMediumDepth-First Search, Breadth-First Search, Array +2
2583Kth Largest Sum in a Binary TreeMediumTree, Breadth-First Search, Binary Tree +1
2596Check Knight Tour ConfigurationMediumDepth-First Search, Breadth-First Search, Array +2
2641Cousins in Binary Tree IIMediumTree, Depth-First Search, Breadth-First Search +2
2658Maximum Number of Fish in a GridMediumDepth-First Search, Breadth-First Search, Union Find +2
2685Count the Number of Complete ComponentsMediumDepth-First Search, Breadth-First Search, Union Find +1
2773Height of Special Binary TreePremiumMediumTree, Depth-First Search, Breadth-First Search +1
2812Find the Safest Path in a GridMediumBreadth-First Search, Union Find, Array +3
2850Minimum Moves to Spread Stones Over GridMediumBreadth-First Search, Array, Dynamic Programming +1
2852Sum of Remoteness of All CellsPremiumMediumDepth-First Search, Breadth-First Search, Union Find +3
2998Minimum Number of Operations to Make X and Y EqualMediumBreadth-First Search, Memoization, Dynamic Programming

Hard (62)

#ProblemDifficultyTopics
126Word Ladder IIHardBreadth-First Search, Hash Table, String +1
127Word LadderHardBreadth-First Search, Hash Table, String
297Serialize and Deserialize Binary TreeHardTree, Depth-First Search, Breadth-First Search +3
301Remove Invalid ParenthesesHardBreadth-First Search, String, Backtracking
329Longest Increasing Path in a MatrixHardDepth-First Search, Breadth-First Search, Graph +5
407Trapping Rain Water IIHardBreadth-First Search, Array, Matrix +1
488Zuma GameHardStack, Breadth-First Search, Memoization +2
514Freedom TrailHardDepth-First Search, Breadth-First Search, String +1
675Cut Off Trees for Golf EventHardBreadth-First Search, Array, Matrix +1
685Redundant Connection IIHardDepth-First Search, Breadth-First Search, Union Find +1
749Contain VirusHardDepth-First Search, Breadth-First Search, Array +2
778Swim in Rising WaterHardDepth-First Search, Breadth-First Search, Union Find +4
269Alien DictionaryPremiumHardDepth-First Search, Breadth-First Search, Graph +3
302Smallest Rectangle Enclosing Black PixelsPremiumHardDepth-First Search, Breadth-First Search, Array +2
317Shortest Distance from All BuildingsPremiumHardBreadth-First Search, Array, Matrix
428Serialize and Deserialize N-ary TreePremiumHardTree, Depth-First Search, Breadth-First Search +1
431Encode N-ary Tree to Binary TreePremiumHardTree, Depth-First Search, Breadth-First Search +2
499The Maze IIIPremiumHardDepth-First Search, Breadth-First Search, Graph +5
711Number of Distinct Islands IIPremiumHardDepth-First Search, Breadth-First Search, Union Find +2
765Couples Holding HandsHardGreedy, Depth-First Search, Breadth-First Search +2
773Sliding PuzzleHardBreadth-First Search, Memoization, Array +3
815Bus RoutesHardBreadth-First Search, Array, Hash Table
827Making A Large IslandHardDepth-First Search, Breadth-First Search, Union Find +2
839Similar String GroupsHardDepth-First Search, Breadth-First Search, Union Find +3
847Shortest Path Visiting All NodesHardBit Manipulation, Breadth-First Search, Graph +2
854K-Similar StringsHardBreadth-First Search, Hash Table, String
864Shortest Path to Get All KeysHardBit Manipulation, Breadth-First Search, Array +1
924Minimize Malware SpreadHardDepth-First Search, Breadth-First Search, Union Find +3
928Minimize Malware Spread IIHardDepth-First Search, Breadth-First Search, Union Find +3
987Vertical Order Traversal of a Binary TreeHardTree, Depth-First Search, Breadth-First Search +3
1036Escape a Large MazeHardDepth-First Search, Breadth-First Search, Array +1
1096Brace Expansion IIHardStack, Breadth-First Search, Hash Table +3
1203Sort Items by Groups Respecting DependenciesHardDepth-First Search, Breadth-First Search, Graph +1
1210Minimum Moves to Reach Target with RotationsHardBreadth-First Search, Array, Matrix
1263Minimum Moves to Move a Box to Their Target LocationHardBreadth-First Search, Array, Matrix +1
1284Minimum Number of Flips to Convert Binary Matrix to Zero MatrixHardBit Manipulation, Breadth-First Search, Array +2
1293Shortest Path in a Grid with Obstacles EliminationHardBreadth-First Search, Array, Matrix
1298Maximum Candies You Can Get from BoxesHardBreadth-First Search, Graph, Array
1345Jump Game IVHardBreadth-First Search, Array, Hash Table
1368Minimum Cost to Make at Least One Valid Path in a GridHardBreadth-First Search, Graph, Array +3
1377Frog Position After T SecondsHardTree, Depth-First Search, Breadth-First Search +1
1483Kth Ancestor of a Tree NodeHardBit Manipulation, Tree, Depth-First Search +4
1568Minimum Number of Days to Disconnect IslandHardDepth-First Search, Breadth-First Search, Array +2
1970Last Day Where You Can Still CrossHardDepth-First Search, Breadth-First Search, Union Find +3
2045Second Minimum Time to Reach DestinationHardBreadth-First Search, Graph, Shortest Path
2092Find All People With SecretHardDepth-First Search, Breadth-First Search, Union Find +2
2204Distance to a Cycle in Undirected GraphPremiumHardDepth-First Search, Breadth-First Search, Union Find +1
2258Escape the Spreading FireHardBreadth-First Search, Array, Binary Search +1
2277Closest Node to Path in TreePremiumHardTree, Depth-First Search, Breadth-First Search +1
2290Minimum Obstacle Removal to Reach CornerHardBreadth-First Search, Graph, Array +3
2328Number of Increasing Paths in a GridHardDepth-First Search, Breadth-First Search, Graph +5
2360Longest Cycle in a GraphHardDepth-First Search, Breadth-First Search, Graph +1
2458Height of Binary Tree After Subtree Removal QueriesHardTree, Depth-First Search, Breadth-First Search +2
2493Divide Nodes Into the Maximum Number of GroupsHardDepth-First Search, Breadth-First Search, Union Find +1
2503Maximum Number of Points From Grid QueriesHardBreadth-First Search, Union Find, Array +4
2534Time Taken to Cross the DoorPremiumHardQueue, Array, Simulation
2577Minimum Time to Visit a Cell In a GridHardBreadth-First Search, Graph, Array +3
2608Shortest Cycle in a GraphHardBreadth-First Search, Graph
2612Minimum Reverse OperationsHardBreadth-First Search, Union Find, Array +2
2617Minimum Number of Visited Cells in a GridHardStack, Breadth-First Search, Union Find +5
2814Minimum Time Takes to Reach Destination Without DrowningPremiumHardBreadth-First Search, Array, Matrix
2858Minimum Edge Reversals So Every Node Is ReachableHardDepth-First Search, Breadth-First Search, Graph +1

Related patterns

Problems sit in more than one pattern more often than not, and the overlap is where the interesting follow-up questions live.

Breadth-First Search pattern FAQ

What is the breadth-first search pattern?

Breadth-first search visits every node at distance k before any node at distance k+1, and that ordering is the entire reason to prefer it: on an unweighted graph the first time BFS reaches a node is guaranteed to be by a shortest path, so the search can stop the moment the target appears.

How many LeetCode problems use the breadth-first search pattern?

This page lists 233 LeetCode problems that the breadth-first search pattern applies to: 23 Easy, 148 Medium and 62 Hard. 185 of them carry a complete Python solution with complexity analysis.

What is the time complexity of the breadth-first search pattern?

O(V + E) time and O(V) space. The same linear traversal cost as depth-first search: the difference is the order of the visits, not the amount of work. The queue holds the widest level rather than the deepest path, which on a wide graph or a filled grid is O(V) and can be considerably more memory than DFS uses on the same input. A multi-source pass costs the same single traversal however many sources are seeded, which is the whole reason to prefer it to one BFS per source.

When should I use the breadth-first search pattern in an interview?

The question is the minimum number of steps, moves, or transformations. The graph is unweighted — with weights, this becomes Dijkstra and needs a heap.

Which breadth-first search problem should I start with?

LeetCode 100. Same Tree is the lowest-numbered Easy problem on this page, which makes it the usual starting point: the technique is visible without the problem's own complications getting in the way.

What patterns are related to breadth-first search?

Depth-First Search, Matrix and Grid, Topological Sort, Heap / Priority Queue. Problems frequently sit in more than one of these, and the overlap is where the interesting follow-up questions come from.

More ways in: all 22 patterns, the curated study lists, or the full problem list.

Meet the breadth-first search problem you did not practise

Stealth Interview is a desktop app for macOS and Windows. It reads the coding problem off your screen, returns a working solution with a step-by-step explanation and its time and space complexity, and transcribes what the interviewer is saying — while staying invisible to screen sharing.