Depth-first search (DFS) is an algorithm for traversing or searching tree or graph data structures. One starts at the root (selecting some arbitrary node as the root in the case of a graph) and explores as far as possible along each branch before backtracking. Here are some important DFS problems asked in Technical Interviews:

- Find number of islands
- Transitive closure of a graph using DFS
- Application of DFS
- Detect cycle in an undirected graph
- Longest path between any pair of vertices
- Find a mother vertex in a graph
- Iterative Depth first traversal
- Print all path from a given source to a destination
- Stepping Number
- Maximum product of two non- intersecting paths in a tree

All articles on Depth First Search

This article is contributed by **Ayushmaan Bansal**. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.

## Recommended Posts:

- Depth First Search or DFS for a Graph
- Iterative Deepening Search(IDS) or Iterative Deepening Depth First Search(IDDFS)
- Applications of Depth First Search
- Iterative Depth First Traversal of Graph
- Best First Search (Informed Search)
- Top 10 algorithms in Interview Questions
- Top 20 Dynamic Programming Interview Questions
- Top 20 Greedy Algorithms Interview Questions
- Top 20 Backtracking Algorithm Interview Questions
- Top 20 Hashing Technique based Interview Questions
- Top 10 algorithms in Interview Questions | Set 2
- Top 40 Python Interview Questions & Answers
- Top 25 Interview Questions
- Flatten a multi-level linked list | Set 2 (Depth wise)
- Sum of minimum element at each depth of a given non cyclic graph
- Replace every node with depth in N-ary Generic Tree
- Minimum valued node having maximum depth in an N-ary Tree
- Find the number of islands | Set 1 (Using DFS)
- Check if a graph is strongly connected | Set 1 (Kosaraju using DFS)
- BFS vs DFS for Binary Tree