Lesson overview · Free interview practice

Graph DFS

Explore graphs using Depth-First Search.

Topics in the full lesson
  • Concept and Use Cases
  • When to Use
  • Time and Space Complexity
  • Graph DFS for Detecting Cycles
  • Finding Connected Components in an Undirected Graph
  • Topological Sorting of a Directed Acyclic Graph (DAG)
  • Finding All Paths Between Two Vertices

Practice Problems

Work through a question before revealing its explanation. These questions and answers are free; Premium adds the full lesson walkthrough, examples and implementation detail.

Completion marks record your own progress, not an automatically checked result. The task type does not determine whether it is optional.

Question

Given n nodes labeled 0..n-1 and a list of undirected edges, return the number of connected components in the resulting graph.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

CodingMedium

Course Schedule

Question

There are numCourses courses labeled 0..numCourses-1. Given a list of prerequisites where prerequisites[i] = [a, b] means "to take course a you must first complete course b", return true if you can finish all courses (no cycle in the prerequisite graph), otherwise false.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

CodingMedium

Graph Valid Tree

Question

You are given n nodes labeled 0..n-1 and a list of edges (undirected). Return true if these edges form a valid tree — that is, the graph is connected and contains no cycles.

Take a moment to think about this before revealing the answer

Explain your reasoning or try an implementation before comparing answers.

Explore the full Graph DFS material

Premium includes the complete lessons and implementation references. Free practice questions remain available without a subscription.

All course tracks & premium content
From basics to advanced masterclasses
Built for JS/TS developers like you
Real-world tips & common pitfalls
Upgrade to Premium