Given the root of a binary tree, return its diameter: the number of edges on the longest path between any two nodes. The path need not pass through the root.