Depth-First Search
Explore as far as possible down one path before backtracking, used to walk trees, graphs, and grids.
Track which nodes belong to the same group and merge groups quickly, used to detect cycles and build networks.
Count how many groups of directly or indirectly connected cities exist.
Find the extra edge that turns a tree of connections into one with a cycle.
Merge accounts that share at least one email address into a single account.
Check whether a given set of edges and nodes forms a valid tree.
Count the number of connected components in an undirected graph.
Determine whether a list of equality and inequality equations can all be satisfied.
Find the lexicographically smallest string reachable by swapping indices given as pairs.
Explore as far as possible down one path before backtracking, used to walk trees, graphs, and grids.
Explore level by level from a starting point, the go-to way to find the shortest path in an unweighted graph.
Find the shortest path from a starting node to every other node in a graph where edges have non-negative weights.
Find the shortest path from a starting node even when some edges have negative weights, and detect negative cycles.
Order the nodes of a graph so every task comes after everything it depends on, used for scheduling and build order.
Build the cheapest network connecting all nodes by adding the smallest edges first, skipping any that form a cycle.