Hot100:二叉树中的最大路径和(Binary Tree Maximum Path Sum)树形 DP / 单边贡献 ACERS 解析
副标题 / 摘要 LeetCode 124 最容易混淆的地方是:递归到底该返回“整条最大路径”还是“能继续向上接的那一段贡献”。只要把这两个角色分开,这题就会变成一个非常典型的树形 DP。 预计阅读时长:12~15 分钟 标签:Hot100、二叉树、树形DP、DFS、后序遍历 SEO 关键词:Binary Tree Maximum Path Sum, 二叉树中的最大路径和, 树形DP, 单边贡献, 后序遍历, LeetCode 124 元描述:系统讲透 LeetCode 124 的单边贡献返回值、全局最大路径更新、负贡献剪枝与多语言实现。 A — Algorithm(题目与算法) 题目还原 二叉树中的一条路径定义为: 由若干个节点组成 相邻节点之间必须有边相连 同一个节点在一条路径里最多出现一次 路径至少包含一个节点 路径不一定经过根节点 路径和就是路径上所有节点值之和。 题目要求返回整棵树里的最大路径和。 输入输出 名称 类型 描述 root TreeNode 二叉树根节点 返回值 int 最大路径和 示例 1 输入:root = [1,2,3] 输出:6 解释:最优路径是 2 -> 1 -> 3,路径和为 6。 示例 2 输入:root = [-10,9,20,null,null,15,7] 输出:42 解释:最优路径是 15 -> 20 -> 7,路径和为 42。 提示 树中节点数目范围是 [1, 3 * 10^4] -1000 <= Node.val <= 1000 目标读者 已经做过 543,但还没完全理解“树上路径题”返回值该如何设计的学习者 一写最大路径和就会把“经过当前节点的完整路径”和“向上返回的贡献”混掉的开发者 想系统掌握树形 DP 基本套路的读者 背景 / 动机 这题的关键训练点是: ...