024 · Diameter of Binary Tree
algorithm
Problem
给定一棵二叉树的根节点 root。
请返回这棵二叉树的直径。
二叉树的直径,指的是树中任意两个节点之间最长路径的长度。
这里的长度不是节点数量,而是路径上的边数。
例如,下面这棵树的直径是 3:
1
/ \
2 3
/ \
4 5
最长路径可以是:
4 -> 2 -> 1 -> 3
也可以是:
5 -> 2 -> 1 -> 3
这条路径经过了 3 条边,所以直径是 3。
注意,最长路径不一定必须经过根节点。
例如:
1
/
2
/ \
3 4
/
5
这里一条较长的路径可以在左子树内部形成,不需要从根节点 1 开始。
Examples
示例 1
Input: root = [1,2,3,4,5]
Output: 3
解释:最长路径可以是 4 -> 2 -> 1 -> 3,一共有 3 条边。
示例 2
Input: root = [1,2]
Output: 1
解释:节点 1 和节点 2 之间只有一条边,所以直径是 1。
示例 3
Input: root = [1]
Output: 0
解释:只有一个节点时,没有边可以连接两个不同节点,所以直径是 0。
Constraints
- 树中节点的数量范围是 \([1, 10^4]\)
- \(-100 \leq\)
Node.val\(\leq 100\)
Link
→ Solution