题解 | #判断是不是平衡二叉树#

判断是不是平衡二叉树

http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222

思路:

1、判断当前节点是否平衡:左右子树高度之差小于等于1

2、递归判断全部节点是否平衡

class Solution:
    def IsBalanced_Solution(self , pRoot: TreeNode) -> bool:
        
        return self.check(pRoot)
        
    def check(self, p):
        if not p:
            return True
        
        left = self.getHigh(p.left)
        right = self.getHigh(p.right)
        
        return abs(left - right) <= 1 and self.check(p.left) and self.check(p.right)
        
    def getHigh(self, p):
        if not p:
            return 0
        
        left = self.getHigh(p.left)
        right = self.getHigh(p.right)
        
        return max(left, right) + 1
全部评论

相关推荐

04-30 21:35
已编辑
长安大学 C++
晓沐咕咕咕:评论区没被女朋友好好对待过的计小将可真多。觉得可惜可以理解,毕竟一线大厂sp。但是骂楼主糊涂的大可不必,说什么会被社会毒打更是丢人。女朋友体制内生活有保障,读研女朋友还供着,都准备订婚了人家两情相悦,二线本地以后两口子日子美滋滋,哪轮到你一个一线城市房子都买不起的996清高计小将在这说人家傻😅
点赞 评论 收藏
分享
03-29 14:19
门头沟学院 Java
你背过凌晨4点的八股文么:加油同学,人生的容错率很高,只是一个暑期罢了,后面还有很多机会!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务