110. Balanced Binary Tree.go

判断二叉树是否是平衡二叉树
平衡二叉树的定义:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树

type TreeNode struct {
    Val   int
    Left  *TreeNode
    Right *TreeNode
}

func isBalanced(root *TreeNode) bool {
    if root == nil {
        return true
    }

    l := getHeight(root.Left)
    r := getHeight(root.Right)
    return l-r < 2 && r-l < 2 && isBalanced(root.Left) && isBalanced(root.Right)
}
func getHeight(root *TreeNode) int {

    if root == nil {
        return 0
    }

    return mymax(getHeight(root.Left), getHeight(root.Right)) + 1
}
func mymax(x, y int) int {
    if x > y {
        return x
    }
    return y
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 5,893评论 0 13
  • 目录 1、什么是树 2、相关术语 3、二叉树 3.1、二叉树的类型 3.2、二叉树的性质 3.3、二叉树的结构 3...
    我哈啊哈啊哈阅读 2,576评论 0 10
  • B树的定义 一棵m阶的B树满足下列条件: 树中每个结点至多有m个孩子。 除根结点和叶子结点外,其它每个结点至少有m...
    文档随手记阅读 13,290评论 0 25
  • 内容整理于鱼c工作室教程 1. 树的基本概念 1.1 树的定义 树(Tree)是n(n>=0)个结点的有限集。 当...
    阿阿阿阿毛阅读 1,131评论 0 1
  • 去旅行,住在哪里很重要。 选对了地方,躺在床上就可以看遍风景。 唐山新华联铂尔曼大酒店, 在唐山就是这么一个好地方...
    肥猫的幸福阅读 1,388评论 0 4