- 构建图(邻接表)
- 构建边
- 深度优先遍历
- 学习广度优先遍历
树的广度优先遍历的写法模式相对固定:
- 使用队列
- 在队列非空的时候,取出队列元素。(记住队列的长度)
- 根据记住的队列长度遍历,并向队列中添加回子元素
实例:
- 学习深度优先遍历
代码风格上有几种形式
- 直接递归本身,函数本身返回结果,函数内部有终止和递归。参考104. 二叉树的最大深度
- 需要用
res
存放结果,闭包函数dfs(node)
调用存放结果,不返回值。参考144. 二叉树的前序遍历 - 使用闭包函数
dfs(node)
返回结果。参考*129. 求根节点到叶节点数字之和
- 回溯算法是在一棵隐式的树或者图进行一次深度优先遍历。
- 当要访问同级下个节点时,需要恢复第一次来到此同级的状态。(涉及状态保存和恢复)