mediumDSA

What is the difference between BFS and DFS?

525 views
01

Understand the problem

Compare graph traversals.

graphsbfsdfs
02

Attempt it yourself

Sketch your approach before reading the solution — that's what interviews test.

Stuck? AI Nudge Available

Get a conceptual hint to guide your logic without spoiling the final implementation.

03

Study the solution

The solution is waiting

Give it an honest attempt first — then compare your thinking with the full walkthrough.

04

Read the code

BFS and DFS on an adjacency list
Run Playground
from collections import deque

def bfs(graph, start):
    seen, q, order = {start}, deque([start]), []
    while q:
        node = q.popleft()
        order.append(node)
        for nb in graph[node]:
            if nb not in seen:
                seen.add(nb); q.append(nb)
    return order

def dfs(graph, node, seen=None, order=None):
    if seen is None: seen, order = set(), []
    seen.add(node); order.append(node)
    for nb in graph[node]:
        if nb not in seen:
            dfs(graph, nb, seen, order)
    return order


# --- demo ---
graph = {0: [1, 2], 1: [0, 3, 4], 2: [0], 3: [1], 4: [1]}
print(bfs(graph, 0))   # [0, 1, 2, 3, 4]
print(dfs(graph, 0))   # [0, 1, 3, 4, 2]
05

Join the discussion

Discussion (0)

Sign in to join the discussion.

No responses yet. Be the first to share what you think.