Data Structures22 min read

Shortest Path BFS

Use BFS on graphs to find shortest paths in unweighted networks like grids, maps, and connections.

David Miller
October 29, 2025
3.9k127

In unweighted graphs, BFS gives shortest path.

Example graph

graph = {
  "A": ["B", "C"],
  "B": ["D"],
  "C": ["D"],
  "D": []
}

BFS shortest path

from collections import deque

def shortest(graph, start):
    q = deque([(start, 0)])
    seen = {start}
    while q:
        node, dist = q.popleft()
        if node == "D":
            return dist
        for nxt in graph[node]:
            if nxt not in seen:
                seen.add(nxt)
                q.append((nxt, dist+1))

print(shortest(graph, "A"))  # 2

Graph

flowchart LR
  A --> B
  A --> C
  B --> D
  C --> D

Remember

  • BFS = shortest in unweighted graphs
  • uses queue
#Python#Advanced#Graph