做好每一件事,读好每一本书,天道酬勤
平衡二叉树
2022-01-11 / 2 min read

什么是平衡二叉树?
我们应该怎么去判断?

题目

给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1 。

示例 1:
 

输入:root = [3,9,20,null,null,15,7]
输出:true
示例 2:
 

输入:root = [1,2,2,3,3,null,null,4,4]
输出:false
示例 3:

输入:root = []
输出:true

思路

题目很简单,思路也很清晰,也就是我们去看树的高度差不大于1.我们只要依据这个条件去写代码就可以了

解题

func isBalanced(root *TreeNode) bool {
if root == nil{
    return true
}
if (!isBalanced(root.Left)||!isBalanced(root.Right)){
    return false
}
Left := getDepath(root.Left)+1
Right := getDepath(root.Right)+1
if (abs(Left-Right)>1){
    return false
}
return true
}

func getDepath(root *TreeNode)int{
    if root == nil{
        return 0
    }
    return max(getDepath(root.Left),getDepath(root.Right))+1
}
func max(left,right int)int{
    if left >right{
        return left
    }
    return right
}
func abs(num int)int{
if num<0{
    return -num
}
return num
}