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 {
// write code here
res := true
var dfs func(node *TreeNode) int
dfs = func(node *TreeNode) int {
if node == nil {
return 0
}
left := dfs(node.Left)
right := dfs(node.Right)
if abs(left, right) > 1 {
res = false
}
return max(left, right) + 1
}
dfs(pRoot)
return res
}
func max(a, b int) int {
if a > b {
return a
}
return b
}
func abs(a, b int) int {
if a > b {
return a - b
}
return b - a
}