观看了视频 : Graph图DFS深度优先搜索题型套路【LeetCode刷题套路教程12】_哔哩哔哩_bilibili
总结了一下图的DFS解题套路:
1.初始化一个Hashset用来记录已经访问过的节点
2.对于所有的入口节点,调用dfs()
a.验证当前的节点,如果该节点已经访问过或者是要找的目的节点,return
b.节点的一些操作(先序遍历)
c.遍历当前节点的每一个相邻节点
[ i.验证邻居节点,如果已经访问过,或者是要找的目的节点,不要对其递归调用dfs(),或者直接return。]
ii.对邻居节点递归调用dfs()
d.节点的一些操作(后序遍历)
注意:其中 a 和 i 可以任选一种,效果是一样的,只不过如果选用a会多递归调用一次 dfs()