一套模板搞定二叉树算法题--二叉树算法讲解004

1、二叉树经典习题

模拟忘记知识点和技巧时,遇到一个新的二叉树习题,该如何处理思考和写代码解题?

1.1、 leetcode 965

题目和题意:

题解1 成员变量self.ans:

题解2 递归回传:

1.2、 leetcode 257

该题是个经典二叉树题目

题目和题意:

题解:

分析,所有路径,每一个叶子节点都需要到达。到达之后,需要退出回到上一层的叶子节点的情况,就是回溯的做法思路。

1.3、 leetcode 113

题目和题意:

题解:

题目的基本框架和leetcode 257 几乎一致,多加了一个"和"的变量。

回溯的题目:常量和数字不用谢回滚,列表需要写回滚。

1.4、 leetcode 563

回传的写法,一般是自底向上的写法

题目和题意:

题解:

坡度计算必须依赖于左右子树的结果

所以是一个自底向上的过程:

题解:

重点是注意return的回传值。

引用

注意:
不要去思考每一个递归过程怎么走?这样思考就容易乱了;
更好的方式是直接去思考子问题。

这道题目的子问题如下图红框:

题目代码并不多,但重在思考过程。不谋全局者,不足谋一域。抓主干,放细节。主干搞定后,再细节想通。

1.5、 leetcode 687

题目和题意:

题解:

题解注释

1.6、 leetcode 124

题目和题意:

题解:


注:

文中截图源自大佬: 闭着眼睛学数理化 课程内容