题解 | #二叉树的直径# | Golang
二叉树的直径
https://www.nowcoder.com/practice/15f977cedc5a4ffa8f03a3433d18650d
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 }