func diameterOfBinaryTree(root *TreeNode) int {
var ans int
dfs(root, &ans)
return ans
}
func dfs(node *TreeNode, ans *int) int {
if node == nil {
return 0
}
L := dfs(node.Left, ans)
R := dfs(node.Right, ans)
*ans = max(*ans, L + R)
return max(L, R) + 1
}