《python算法与数据结构2000讲》0543. 二叉树的直径
- 标签:二叉树
- 难度:简单
题目大意
描述:给一个二叉树的根节点 root
。
要求:计算该二叉树的直径长度。
说明:
- 二叉树的直径长度:二叉树中任意两个节点路径长度中的最大值。
- 两节点之间的路径长度是以它们之间边的数目表示。
示例:
- 示例 1:
给定二叉树:
1
/ \
2 3
/ \
4 5
输出:3
解释:该二叉树的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。
解题思路
思路 1:深度优先搜索
这道题的重点是理解直径长度的定义。这里的直径并不是简单的「左子树高度」+「右子树高度」。
而是 当前节点的直径 = max{左子树高度+右子树高度,所有子树中最大直径}
。