Given the root of a binary tree, return the **diameter** — the length of the longest path between any two nodes.
The path may or may not pass through the root. The length is measured in **number of edges**.