func isBalanced(root *TreeNode) bool {
ok := true
solve(root, &ok)
return ok
}
func solve(node *TreeNode, ok *bool) int {
if node == nil {
return 0
}
L := solve(node.Left, ok)
R := solve(node.Right, ok)
if abs(L - R) > 1 {
*ok = false
}
return max(L, R) + 1
}
func abs(num int) int {
if num > 0 {
return num
}
return -num
}
func isBalanced(root *TreeNode) bool {
ok := true
solve(root, &ok)
return ok
}
func solve(node *TreeNode, ok *bool) int {
if *ok == false {
return 0
}
if node == nil {
return 0
}
L := solve(node.Left, ok)
R := solve(node.Right, ok)
if abs(L - R) > 1 {
*ok = false
}
return max(L, R) + 1
}
func abs(num int) int {
if num > 0 {
return num
}
return -num
}