1.题目来源 : 0124. 二叉树中的最大路径和
https://datawhalechina.github.io/leetcode-notes/#/ch07/07.02/07.02.02-Exercises
2.解题思路
步骤:本题关键在于递归,递归需要时间和空间,因此不同的算法优劣之分在于如何提高效率,减少时间和空间复杂度。
提供以下思路进行参考:
1.将如图所示的最小子树作为递归单元。
采用后序遍历。
2.将如图所示的最小子树作为递归单元,父节点rt作为中转结点。
其路径和只有四种情况,分别是,rt,rt和左孩子,rt和右孩子,rt和左右孩子。
算出最大值。
3.取上下两层的父子结点作为递归单元,父结点作为中转结点。
称父结点层为第一层,子结点层为第二层。
取第一层值最大的结点和其值最大的孩子,值之和计为sum1;取第二层值最大的子孩子和它的父结点,和计为sum2。
比较sum1和sum2,返回最大值。
注:前两种是大佬想的,最后一种是我不成熟的算法,如有错误,请巨佬们指正!