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

力扣刷题Day 15:二叉树中的最大路径和(124)

1.题目描述

2.思路

自顶向下递归到叶子结点,然后记录每个结点的max(本身的值、自身值与左孩子值之和、自身值与右孩子值之和)、以及自身与左右两个孩子值之和,回溯的过程就是查找最大和的过程。

3.代码(Python3)

class Solution:
    def maxPathSum(self, root: Optional[TreeNode]) -> int:
        def tree_traversal(node):
            nonlocal max_root_sum
            if node.left is None:
                left_max = 0
            else:
                left_max = tree_traversal(node.left)
            if node.right is None:
                right_max = 0
            else:
                right_max = tree_traversal(node.right)
            current_root_max_sum = max(left_max + right_max + node.val, left_max + node.val, right_max + node.val, node.val)
            if current_root_max_sum > max_root_sum:
                max_root_sum = current_root_max_sum
            return max(node.val + left_max, node.val + right_max, node.val)

        max_root_sum = float('-inf')
        return max(tree_traversal(root), max_root_sum)

4.执行情况

5.感想

首次攻克困难题!

相关文章:

  • [ctfshow web入门] web32
  • 【场景应用1】微调语言模型:从数据加载到模型训练、模型评估
  • VMware Workstation/Player 在 Windows 上的完整安装与使用指南
  • [bug]解决vscode+cline使用mcp服务报错spawn npx enoent spawn npx enoent
  • 7. RabbitMQ 消息队列——延时队列(Spring Boot + 安装message_exchange“延迟插件“ 的详细配置说明)的详细讲解
  • 进程通信的学习
  • 多值字典表设计:优雅处理一对多关系的数据库方案
  • C++基础精讲-01
  • Ubuntu环境下,EDK2+EmulatorPkg编译运行UEFI固件
  • Ollama教程与大模型本地部署指南
  • 32 python json
  • PostgreSQLs数据库考试
  • MySQL 中的聚簇索引和非聚簇索引有什么区别?
  • Redis的过期和内存淘汰策略
  • 新技术学习方法
  • 卷积神经网络 CNN 系列总结(一)---基础知识点
  • ubuntu22.04 安装-ODBC驱动-SQLserver
  • vue中根据html动态渲染内容2.0
  • 无人设备遥控器之数据分析与处理篇
  • 一周学会Pandas2 Python数据处理与分析-Pandas2数据读取
  • 网站计费系统怎么做/我要看今日头条
  • 用asp.net做的 购物网站视频/软文推广案例大全
  • 深圳建设网站费用/培训机构推荐
  • 什么是手机网站/网页模板建站系统
  • 企业网站案例分析/什么是sem
  • 深圳建设门户网站/中山疫情最新消息