深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。在LeetCode上,DFS是一个常用的算法,可以帮助我们解决许多问题。

深度优先搜索概述

深度优先搜索是一种从根节点开始遍历图或树,沿着一个分支一直走到尽头,然后再回溯的算法。以下是一个简单的DFS流程:

  1. 访问当前节点。
  2. 标记当前节点为已访问。
  3. 对于当前节点的每个未访问的邻接节点,递归执行步骤1-3。

示例代码(Python)

以下是一个使用Python实现的DFS示例:

def dfs(node):
    if node is None:
        return
    print(node)
    for neighbor in node.neighbors:
        dfs(neighbor)


class Node:
    def __init__(self):
        self.neighbors = []

# 创建节点并连接
node1 = Node()
node2 = Node()
node3 = Node()
node1.neighbors.append(node2)
node1.neighbors.append(node3)

# 执行DFS
dfs(node1)

相关问题

在LeetCode上,有许多问题可以使用DFS来解决。以下是一些常见的DFS问题:

总结

深度优先搜索是一种强大的算法,可以帮助我们解决许多复杂的问题。在LeetCode上,DFS是解决图和树相关问题的常用方法。希望这个教程能帮助你更好地理解DFS。

返回算法教程列表