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

1、二叉树经典习题

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

1.1、 leetcode 965

题目和题意:
mark

题解1 成员变量self.ans:
mark

题解2 递归回传:
mark

1.2、 leetcode 257

该题是个经典二叉树题目

题目和题意:
mark

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

1.3、 leetcode 113

题目和题意:
mark

题解:
题目的基本框架和leetcode 257 几乎一致,多加了一个“和”的变量。
mark

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

1.4、 leetcode 563

回传的写法,一般是自底向上的写法
题目和题意:
mark

mark

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

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

题解:
重点是注意return的回传值。

引用

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

mark

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

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

1.5、 leetcode 687

题目和题意:
mark

mark

题解:
mark
题解注释
mark

1.6、 leetcode 124

题目和题意:
mark

mark

题解:
mark


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

posted @ 2024-02-05 21:04  皿哥的技术人生  阅读(18)  评论(0编辑  收藏  举报