leetcode-110 平衡二叉树

leetcode-110 平衡二叉树

平衡二叉树特点:在二叉树中,每个节点的左右子树高度只差小于等于1

  1. 遍历二叉树中的每个节点
  2. 计算每个节点的左右子树高度
class Solution:
    def isBalanced(self, root: TreeNode) -> bool:
        if not root:
            return True
        #计算根节点左右子树的高度差
        if abs(self.getHigh(root.left)-self.getHigh(root.right))>1:
            return False
        #递归计算
        return self.isBalanced(root.left) and self.isBalanced(root.right)
    def getHigh(self,root):
        if not root:
            return 0
        if root and not root.left and not root.right:
            return 1
        l=self.getHigh(root.left)
        r=self.getHigh(root.right)
        return l+1 if l>r else r+1
posted @ 2021-10-16 10:34  流光之中  阅读(20)  评论(0编辑  收藏  举报