定义:对于任意节点 uuu,假设它的左子树深度为 LuL_uLu,右子树深度为 RuR_uRu,那么经过 uuu 的最长路径长度为 Lu+RuL_u + R_uLu+Ru。
全局直径:我们需要维护一个全局变量 diameter\text{diameter}diameter,初始化为 0。对树中每个节点 uuu,更新:
diameter=max(diameter,Lu+Ru)\text{diameter} = \max(\text{diameter},L_u + R_u)diameter=max(diameter,Lu+Ru)
递归计算深度:使用后序遍历,对于节点 uuu:
给定一棵二叉树序列,返回该树的直径。 二叉树的直径指树中任意两个节点之间最长路径的长度。这条路径可能经过也可能不经过根节点rootrootroot。
本题属于以下题库,请选择所需题库进行购买
ScanQRCodePrompt
GoToPasswordLoginPrompt