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