| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | package main// type TreeNode struct {// 	Val   int// 	Left  *TreeNode// 	Right *TreeNode// }// func maxInt(x, y int) int {// 	if x > y {// 		return x// 	}// 	return y// }// func abs(x int) int {// 	if x < 0 {// 		return -x// 	}// 	return x// }func treeDepth(root *TreeNode, depth int) int {	if root == nil {		return depth	}	return maxInt(treeDepth(root.Left, depth+1), treeDepth(root.Right, depth+1))}/** * Definition for a binary tree node. * type TreeNode struct { *     Val int *     Left *TreeNode *     Right *TreeNode * } */func isBalanced(root *TreeNode) bool {	if root == nil {		return true	}	if abs(treeDepth(root.Left, 0)-treeDepth(root.Right, 0)) > 1 {		return false	}	return isBalanced(root.Left) && isBalanced(root.Right)}// func main() {// 	/**// 	 * t1:  5// 	 *     / \// 	 *    1   4// 	 *       / \// 	 *      2   3// 	 */// 	t1l := TreeNode{1, nil, nil}// 	t1rl := TreeNode{2, nil, nil}// 	t1rr := TreeNode{3, nil, nil}// 	t1r := TreeNode{4, &t1rl, &t1rr}// 	t1 := &TreeNode{5, &t1l, &t1r}// 	fmt.Println(isBalanced(t1))// 	fmt.Println(isBalanced(nil))// }
 |