查看原文
其他

真⋅手把手带你刷通 100 道二叉树题目

labuladong labuladong 2023-02-21

学算法认准 labuladong

后台回复 进群 进刷题群

点击卡片可搜索文章👆

学习数据结构和算法的框架思维 中我特地强调了二叉树的重要性,有不少读者说刷完了二叉树分类题目之后,对递归的掌握更上一层楼了,发现那些动态规划、回溯算法、图论算法本质上其实和二叉树是类似的。

当然,其实更多的读者反馈是:知道这玩意儿重要,但是刷起来依然比较困难,不得要领。

所以我在想如何真正手把手带读者刷二叉树分类的题目,而且最关键的目标是要领悟递归算法的思维模式,对高级算法也能做到举一反三。

一篇文章当然无法手把手带你刷完所有二叉树题目,一百多道呢,就算我写了,你也不一定能一次看完。

但这不是有了刷题插件了嘛,所以继上次更新了 top 100 的题目思路之后,这几天我在 刷题插件 中加入了 100 多道二叉树题目思路和解法,涵盖了二叉树分类下几乎所有非会员题目

安装插件后点开二叉树题目分类就可以看到。

而且,我不是仅仅是给一个解法代码,而是会给按照前文 二叉树技巧总结篇 的解题框架给出简明扼要的解题思路。

不要小看解题框架哦,这就是我一直强调的框架思维,所有题目都归类成相同的套路,按照统一的思考步骤来解决。

不是说我的思路就是最好的,但对于那些对算法比较懵逼的读者,统一化和套路化是最有效的

如果你去看五花八门的解法,各种思路不统一,很难形成一套可复用的方法论,轮到自己做题又不会了,所谓「听君一席话,如听一席话」。

你基于我的这套统一的万能框架,先做到无鸭梨解决二叉树题目,再基于自己的理解发明解题的奇技淫巧,随你,这完全没有冲突。

接下来简要说下我的二叉树解题思路的特点。

首先,按照前文 二叉树技巧总结篇 所说,所有二叉树题目都被分为「遍历」和「分解问题」两种思路:

对于一些可以使用多种思路的题目,我会同时提供所有思路的解法代码:

对于一些需要前置知识的题目,我都给你安排好了:

对于一些可以使用 DFS(递归)遍历也可以使用 BFS(层序)遍历的题目,我也会同时提供两种思路的解法代码:

更多的我就不介绍了,大家自行探索吧。用很多读者的话说,我这波属于是把饭送到嘴边了,还搞不定算法的话真是不应该了。

后续我也会借助刷题插件继续开发「手把手刷 XXX」系列,比如动态规划这类题目,以后肯定会有的,等我在公众号发通知即可。

最后,还没安装插件的读者可以看 刷题插件安装使用手册 安装使用。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存