2023.1.3打卡,二刷感觉良好
难题
- 障碍:值传递和引用传递的区别,在参数为数值型时,此时为值传递,所以即使你该轮改变了tmp的值,但是没有办法影响已经在栈内的函数
知识点
- dfs深度优先遍历的特点:一条路走到黑,再返回,一定要注意他会返回值,于是需考虑 是否设置返回值 的函数,见文章讲解如何考虑返回值
关于这点的思考:
如果需要处理返回值,如构建二叉树,则一定要设置返回值;
如果只需找到结果就立马返回,可设置全局变量 或者 设定返回值(根据返回值判断是否继续递归)
思路
- 确定函数的参数、返回值(是否需要全局变量,一定要注意值传递和引用传递)
- 确定遍历顺序和单层逻辑,遍历顺序为dfs还是bfs,单层逻辑的验证根据简单的三节点来模拟
- 确定终止条件,万年终止条件:if not root: return None(用的最多而已)