Hot100:二叉树的直径(Diameter of Binary Tree)树形 DP / 高度回传 ACERS 解析
副标题 / 摘要 LeetCode 543 最容易混乱的点是:递归函数到底应该返回“高度”还是“直径”。这题的稳定写法是后序遍历时向上返回高度,同时在每个节点尝试更新“经过当前节点的最长路径”。理解这个分工后,树形 DP 会一下子清楚很多。 预计阅读时长:10~13 分钟 标签:Hot100、二叉树、树形DP、DFS、后序遍历 SEO 关键词:Diameter of Binary Tree, 二叉树的直径, 树形DP, 高度回传, DFS, LeetCode 543 元描述:系统讲透 LeetCode 543 的后序高度回传法,包含递推推导、工程迁移、复杂度分析与多语言实现。 A — Algorithm(题目与算法) 题目还原 给你一棵二叉树的根节点 root,返回该树的直径。 二叉树的直径指的是: 树中任意两个节点之间最长路径的长度 这条路径可以经过根节点,也可以不经过根节点 路径长度按边数计算 输入输出 名称 类型 描述 root TreeNode 二叉树根节点 返回 int 树的直径(最长路径边数) 示例 1 输入:root = [1,2,3,4,5] 输出:3 解释:长度为 3 ,取路径 [4,2,1,3] 或 [5,2,1,3] 。 示例 2 输入:root = [1,2] 输出:1 提示 树中节点数目在范围 [1, 10^4] 内 -100 <= Node.val <= 100 目标读者 已经会写树深度递归,准备进入树形 DP 视角的学习者 容易把“返回值”和“全局答案”混在一起的开发者 在工程里处理层级传播链、最长链路或树状结构跨度问题的工程师 背景 / 动机 看到“二叉树的直径”,很多人第一反应会是: ...