Test if a Binary tree is height Balanced

class node:
    def __init__(self,val):
        self.value = val
        self.left = None
        self.right = None

    def __repr__(self):
        return str(self.value)
def is_balanced(root):
    if not root:
        return 0,True
    left_val,left_flag = is_balanced(root.left)
    right_val,right_flag = is_balanced(root.right)

    if abs(left_val-right_val)>1 or not left_flag or not right_flag:
        return max(left_val,right_val)+1,False
    return max(left_val,right_val)+1,True

results matching ""

    No results matching ""