二叉树平衡检查

题目描述
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。

给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。

# -*- coding:utf-8 -*-
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


class Balance:
    def isBalance(self, root):
        if root is None:
            return True
        if abs(self.get_length(root.left)-self.get_length(root.right))>1:
            return False
        return self.isBalance(root.left) and self.isBalance(root.right)

    def get_length(self,root):
        if root is None:
            return 0
        return 1+max(self.get_length(root.left),self.get_length(root.right))
posted @ 2019-07-13 23:23  bernieloveslife  阅读(204)  评论(0编辑  收藏  举报