算法:二叉树最大路径和
核心解题思路要理解这个算法你需要明白二叉树中的任何一个节点在计算路径时其实扮演了两个不同的角色1. 对“上级”父节点的角色只能提供一条腿当一个节点比如 root向它的父节点汇报工作时它不能把“左根右”这个像拱桥一样的路径汇报上去。因为路径不能分叉一条路径要想继续向上延伸只能选择左边或者右边的一条路。汇报值 root-val max(左子树能提供的最大单边路径, 右子树能提供的最大单边路径)。2. 对“全局答案”的角色可以是路径的最高点拐点一条路径可以在当前节点“拐弯”。也就是说路径可以是 左子树 - 当前节点 - 右子树。当前节点为拐点的最大路径和 左子树最大贡献 右子树最大贡献 root-val。我们需要每遍历到一个节点就计算一下以它为“拐点”的路径和是否比当前的全局最大值 ans 还要大。如果是就更新 ans。完整代码class Solution { public: int maxPathSum(TreeNode* root) { int ans INT_MIN; // 初始化为一个最小值防止题目全是负数节点时出错 dfs(root, ans); // 开始递归 return ans; // 返回最终找到的全局最大路径和 } // 注意这里 ans 是引用传递 (int ans)这样递归中修改的都是同一个变量 int dfs(TreeNode *root, int ans) { // 1. 递归终止条件Base Case // 如果节点为空它对路径的贡献就是 0 if (root nullptr) return 0; // 2. 递归计算左右子树的“最大贡献值” // 核心逻辑max(0, ...) 是精华所在 // 如果子树计算出的路径和是负数比如 -10那我们不如不选那条路即贡献为 0。 // 这相当于“剪枝”把负贡献的尾巴剪掉。 int left max(0, dfs(root-left, ans)); int right max(0, dfs(root-right, ans)); // 3. 计算“单边最大路径”用于返回给父节点 // temp 代表如果父节点想连我我能提供的最大值。 // 我只能带上我左右孩子中较大的那一个或者都不带如果都是0。 int temp max(left, right) root-val; // 4. 更新全局最大值ans // 这里原作者写了两行更新其实逻辑涵盖了两种情况 // 第一行更新单边路径的情况比如路径只到当前节点为止或者只连一边 ans max(ans, temp); // 第二行更新“拱桥”情况最关键的一步 // 路径形态左孩子 - 当前节点 - 右孩子 // 这代表路径在当前节点这里“拐弯”了不再向父节点延伸。 ans max(ans, left right root-val); // 5. 返回值 // 注意这里必须返回 temp。 // 因为 dfs 函数的定义是“返回该节点能给父节点提供的最大单边路径”。 // 你不能返回“左根右”因为那是一条死路两头都堵住了不能再连父节点了。 return temp; } };输入: root [1, 2, 3]步骤演示处理节点 2 (左子叶):left, right 都是 0 (因为无子节点)。temp (汇报给父节点) $0 0 2 2$。更新 ans此时 ans 可能是 2 (视初始化和遍历顺序而定)。返回 2。处理节点 3 (右子叶):left, right 都是 0。temp (汇报给父节点) $0 0 3 3$。更新 ansans 更新为 3。返回 3。处理节点 1 (根节点):left 2 (来自节点 2 的返回值)。right 3 (来自节点 3 的返回值)。计算拱桥路径 (拐点路径):$left right root-val 2 3 1 6$。更新 ansans 变为6。计算返回值 (temp):max(2, 3) 1 4 (这意味着如果 1 还有父节点它会汇报 4)。最终结果 ans 6

相关新闻

大数据领域数据中台的分布式架构优势

大数据领域数据中台的分布式架构优势

大数据领域数据中台的分布式架构优势 关键词:数据中台、分布式架构、大数据处理、微服务治理、数据治理、弹性扩展、高可用性 摘要:本文系统解析数据中台分布式架构的核心优势,从技术原理、架构设计、算法实现、实战案例等维度展开。通过分析分布式存储计算、服务治理、资源…

2026/7/3 14:32:51 阅读更多 →
信号处理仿真:语音信号处理_(4).语音信号的时域分析

信号处理仿真:语音信号处理_(4).语音信号的时域分析

语音信号的时域分析 1. 时域信号的基本概念 在信号处理中,时域分析是最基础的分析方法之一。时域信号是指信号随时间变化的表示形式,可以直接从信号波形中观察到信号的特性。对于语音信号而言,时域分析可以帮助我们了解语音的基本特征&…

2026/7/4 20:50:06 阅读更多 →
ssm基于Android的电影院网上订票系统的设计与实现_890hss28_zl051

ssm基于Android的电影院网上订票系统的设计与实现_890hss28_zl051

一、项目介绍 SSM(Spring Spring MVC MyBatis)基于Android的电影院网上订票系统是一款结合后端高效管理(SSM框架)与移动端便捷操作(Android平台)的在线票务服务应用。该系统支持用户通过手机APP查询影院排…

2026/7/3 14:32:53 阅读更多 →

最新新闻

PCB设计中地线与电源线加宽的技术要点与实战分析

PCB设计中地线与电源线加宽的技术要点与实战分析

1. PCB布线中地线与电源线加宽的核心逻辑 在PCB设计领域,地线(GND)和电源线(VCC)的走线宽度处理是影响电路性能的关键因素之一。不同于信号线可以相对灵活地调整宽度,这两类走线需要特殊对待的根本原因在于…

2026/7/5 12:58:00 阅读更多 →
基于YOLOv10的红外目标检测实战指南

基于YOLOv10的红外目标检测实战指南

1. 项目背景与核心价值去年夏天,我在参与一个山区救援项目时,亲眼目睹了传统无人机监控系统的局限性。在浓烟和夜间环境下,普通摄像头完全失效,而热成像设备虽然能捕捉到热源,却无法准确识别是人、动物还是车辆。正是这…

2026/7/5 12:51:58 阅读更多 →
AIAgent之工具调用:Function Call 与 Tool Use

AIAgent之工具调用:Function Call 与 Tool Use

工具调用:Function Call 与 Tool Use工具调用是 Agent 的「手」,让大模型能操作外部世界。这篇讲 Function Calling 的原理、工具怎么定义、模型怎么选工具、参数怎么传、常见的工具类型,以及开发中的最佳实践。大家好,我是黒漂技…

2026/7/5 12:49:55 阅读更多 →
ICM-42688-P与STM32F746ZG在工业自动化中的应用

ICM-42688-P与STM32F746ZG在工业自动化中的应用

1. ICM-42688-P与STM32F746ZG的黄金组合解析 在工业自动化和机器人控制领域,传感器与微控制器的协同设计直接决定了系统的性能上限。ICM-42688-P作为TDK InvenSense推出的6轴MEMS运动传感器,与STMicroelectronics的STM32F746ZG Cortex-M7微控制器形成的硬…

2026/7/5 12:47:54 阅读更多 →
混合整数二次规划在模型预测控制中的应用与求解器对比

混合整数二次规划在模型预测控制中的应用与求解器对比

1. 混合整数二次规划在模型预测控制中的核心作用 混合整数二次规划(MIQP)作为模型预测控制(MPC)中处理离散决策变量的关键技术,其核心价值在于平衡计算复杂度和控制性能。在车辆动力系统控制这类典型应用中,变速箱档位选择、发动机启停等离散决策变量与连…

2026/7/5 12:47:54 阅读更多 →
YOLO实战避坑指南:从环境配置到部署落地的完整工程化流程

YOLO实战避坑指南:从环境配置到部署落地的完整工程化流程

如果你在 2024 年或 2025 年才开始接触 YOLO,可能会觉得它已经是一个“古老”且“成熟”的技术栈,网上教程遍地都是,随便找个代码跑起来似乎并不难。但当你真正想把它用起来,无论是做一个毕业设计、一个内部工具,还是想…

2026/7/5 12:45:54 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻