python二叉树深度 判断平衡树

来源:互联网 发布:国际航协2015数据 编辑:程序博客网 时间:2024/06/01 10:32


#-*- coding:utf-8 -*-class TreeNode:    def __init__(self, x):        self.val = x        self.left = None        self.right = Noneclass Solution:    def getDepth(self , Root):        if Root == None:            return 0;        lDepth = self.getDepth(Root.left);        rDepth = self.getDepth(Root.right);        return max(lDepth , rDepth) + 1;    def IsBalanced(self, pRoot):        if not pRoot:            return True        lDepth = self.getDepth(pRoot.left);        rDepth = self.getDepth(pRoot.right);        diff = lDepth - rDepth;        if diff < -1 or diff > 1:            return False;        return self.IsBalanced(pRoot.left) and self.IsBalanced(pRoot.right);tn= TreeNode(1)ltn=TreeNode(2)rtn=TreeNode(3)tn.left=ltnltn.right=rtnprint( Solution().IsBalanced(tn))