【Leetcode刷题记录】0124

文章介绍了在二叉树中寻找最大路径和的两种递归思路,强调了优化算法以减少时间和空间复杂度,并提供了两种方法和一个不成熟但可能有效的方法,期待读者指正。
摘要由CSDN通过智能技术生成

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,返回最大值。

注:前两种是大佬想的,最后一种是我不成熟的算法,如有错误,请巨佬们指正!

3.代码:(补写)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值