LeetCode 里面很大一部分题目都是属于这个范围,例如Path Sum用的就是递归+DFS,Path Sum2用的是递归+DFS+回溯
这里参考了一些网上写得很不错的文章,总结一下理解与模板
递归:就是出现这种情况的代码: (或者说是用到了栈)
解答树角度:在dfs遍历一棵解答树
优点:结构简洁
缺点:效率低,可能栈溢出
递归的一般结构:
void f()
{
if(符合边界条件)
{
///////
return;
}
//某种形式的调用
f();
}

这篇博客总结了LeetCode中常见的递归、回溯、深度优先搜索(DFS)和广度优先搜索(BFS)的概念及应用场景。通过解答树的角度,解释了它们之间的联系和区别。递归虽然结构简洁但可能导致效率低和栈溢出;回溯是带有剪枝的DFS过程。BFS通常使用队列,DFS则可用递归或显式栈实现,递归方式可能引起栈溢出。举例说明了BFS在二叉树层次遍历和图的最短路径问题的应用。
最低0.47元/天 解锁文章
1738

被折叠的 条评论
为什么被折叠?



