Skip to content

Latest commit

 

History

History
44 lines (28 loc) · 854 Bytes

110. Balanced Binary Tree-python.md

File metadata and controls

44 lines (28 loc) · 854 Bytes
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class ResType:
    def __init__(self, x, isBalanced):
        self.deep = x
        self.isBalanced = isBalanced

class Solution:
    def isBalanced(self, root):
        """
        :type root: TreeNode
        :rtype: bool
        """
        return self.treeDeepth(root).isBalanced



    def treeDeepth(self,root):

        if root == None:
        	return  ResType(0,True)

        left = self.treeDeepth(root.left)
        right = self.treeDeepth(root.right)

        if abs(left.deep-right.deep) >1:
        	return  ResType(max(left.deep,right.deep)+1,False)
        else:
        	return  ResType(max(left.deep,right.deep)+1,left.isBalanced & right.isBalanced)