题解 | #判断是不是平衡二叉树# | Golang
判断是不是平衡二叉树
https://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222
package main import . "nc_tools" /* * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param pRoot TreeNode类 * @return bool布尔型 */ func IsBalanced_Solution( pRoot *TreeNode ) bool { if pRoot == nil { return true } return IsBalanced_Solution(pRoot.Left) && IsBalanced_Solution(pRoot.Right) && abs(GetHeight(pRoot.Left) - GetHeight(pRoot.Right)) <= 1 } func GetHeight(node *TreeNode) int { if node != nil { return 1 + max(GetHeight(node.Left), GetHeight(node.Right)) } return 0 } func abs(a int) int { if a > 0 { return a } return -a } func max(a int, b int) int { if a > b { return a } return b }