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
题目和题意:
题解:
注:
文中截图源自大佬: 闭着眼睛学数理化 课程内容