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 a 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: root = [1,2,3,4,5]
Output: 3
Explanation: The longest path is 4 → 2 → 1 → 3 (or 5 → 2 → 1 → 3). It has 3 edges.
Example 2
Input: root = [1,2]
Output: 1
Explanation: The only path connects 1 and 2 with a single edge, so the diameter is 1.
Example 3
Input: root = [1]
Output: 0
Explanation: A single node has no edges, so the diameter is 0.
At each node, the diameter through it is left_height + right_height. Track the global maximum across all nodes.
Run checks all cases above. Submit evaluates all test cases.