【4.1树】 二叉树平衡检查

题目描述

实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过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):
        # 如果左子数和又子数的深度差大于1,则False
        # 否则判断左子树和右子树是否为True
        if root == None:
            return True
        if abs(self.height(root.left)-self.height(root.right)) > 1:
            return False
        else:
            return self.isBalance(root.left) and self.isBalance(root.right)
    def height(self, root):
        # 求子树高度,若为None则返回0,否则 max(左子树,右子树)+1
        if root == None:
            return 0
        else:
            return max(self.height(root.left), self.height(root.right))+1
    原文作者:平衡二叉树
    原文地址: https://blog.csdn.net/u014518506/article/details/79487215
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞