Given the root of a binary tree, return the length of the diameter of the tree.
The diameter of a binary tree is the length of the longest path between any two nodes in the tree. This path may or may not pass through the root.
The length of a path between two nodes is represented by the number of edges between them.
Example 1:
Input: 1 2 3 4 5 Output: 3
(The longest path is 4 → 2 → 1 → 3 or 5 → 2 → 1 → 3, length 3)
Example 2:
Input: 1 2 Output: 1
Constraints:
- The number of nodes in the tree is in the range [1, 10⁴]
- -100 ≤ Node.val ≤ 100
Input format: BFS level-order, space-separated, null for missing nodes.
Output format: Integer — the diameter.