马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
DFS的遍历的模版大差不差,紧张是区别标题中的图是否是有环的?标题求解的是可达题目,路径数目题目
- 开始的时间,假如标题中的边的记载没有转化为毗邻表的情势,那么就必要我们自己举行转化
- # 使用邻接表存储图
- adj = [[] for _ in range(n)]
- for u, v in edges:
- adj[u].append(v)
- adj[v].append(u)
复制代码
- # DFS 函数
- def dfs(i):
- if 终止条件
- return True
- # 如果需要标记,visited[i] = True # 标记当前节点为已访问
- # 访问当前节点的邻居节点
- for neighbor in adj[i]:
- # 具体的操作
- # 返回
- return
复制代码 几类题目
- 假如存在环的情况,一样寻常要设置visited,否则会重复访问,固然,假如是有向无环图,就不消设置visited
- 当你要记载一个节点是否被访问的时间,你就要设置这个visited
- visited标志的更新的题目
- def dfs(i):
- # 一般更新在外边
- visited[i] = True
复制代码
- 怎样判断是否有环的题目?你可以记载当前节点的parent,当碰到一个新的已经访问的节点,而且该节点还不是父节点(感觉n>2才行)
1971.探求图中是否存在路径
|