package main import ( . "nc_tools" ) /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @return int整型 */ func diameterOfBinaryTree( root *TreeNode ) int { ans := 0 dfs(root, &ans) return ans } func dfs( node *TreeNode, ans *int) int { if node == nil { return 0 } l, r := dfs(node.Left, ans), dfs(node.Right, ans) *ans = max(*ans, l+r) return 1 + max(l,r) } func max(a int, b int) int { if a > b { return a } return b }