当前位置: 首页 > news >正文

面试150 二叉树中的最大路径和

在这里插入图片描述

思路

采用自底向上的递归方式(后序遍历)计算二叉树中的最大路径和。对于每个节点,递归地求出其左右子树可以提供的最大贡献值(若为负则置为0),然后以该节点为“路径的最高点”计算一次完整路径的和,并尝试更新全局最大路径和。每次递归返回当前节点向上可延续的最大单边路径,用于父节点的计算。通过这种方式,能全面考虑所有路径组合,最终得到整棵树中任意路径的最大和。

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def maxPathSum(self, root: Optional[TreeNode]) -> int:self.maxSum=float('-inf')def spread(root):if not root:return 0left_sum=max(spread(root.left),0)right_sum=max(spread(root.right),0)this_sum=root.val+left_sum+right_sumself.maxSum=max(self.maxSum,this_sum)return root.val+max(left_sum,right_sum)spread(root)return self.maxSum
http://www.dtcms.com/a/279535.html

相关文章:

  • 水务工程中自动化应用:EtherNet/IP转PROFIBUS DP连接超声波流量计
  • 9.服务容错:构建高可用微服务的核心防御
  • Go泛型完全指南:从基础到实战应用
  • 【深度学习笔记】2 浅层神经网络
  • 【Golang】GORM - GEN工具 快速开始
  • Go迭代器完全指南:从基础到实战
  • MYOJ_8512:CSP初赛题单1:计算机常识
  • Unsloth 实战:DeepSeek-R1 模型高效微调指南(下篇)
  • ECUs、ZCUs、CCUs:产生的软件栈(SW stack)也有所不同
  • C++-linux 7.文件IO(三)文件元数据与 C 标准库文件操作
  • 七彩喜平台:养老行业的 “智慧革命”,老年人的 “幸福驿站”
  • 网络安全|网络准入控制系统有哪些?网络准入控制系统十大解决方案详解
  • winfom自定义一个椭圆按钮
  • Codex,Copilot 是什么
  • 艺术总监的构图“再造术”:用PS生成式AI,重塑照片叙事框架
  • Vim库函数
  • NE综合实验2:RIP 与 OSPF 动态路由精细配置及ACL访问控制列表
  • pycharm连接远程终端的Anaconda安装与bug记录
  • 洛谷【数学 1】基础数学问题:最小公倍数的计算与应用
  • ELK、Loki、Kafka 三种日志告警联动方案全解析(附实战 Demo)
  • mysql 与redis缓存一致性,延时双删 和先更新数据库,再删除缓存,哪个方案好
  • 系统思考:跨境跨界团队学习
  • 安装Keycloak并启动服务(macOS)
  • SpringMVC4
  • 用基础模型构建应用(第九章)AI Engineering: Building Applications with Foundation Models学习笔记
  • mac安装nvm执行命令报错-解决方案
  • 延迟双删
  • redis面试高频问题汇总(一)
  • 中间件部署
  • Android 16k jni修改