Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
Example
Given binary tree A={3,9,20,#,#,15,7}, B={3,#,20,15,7}
123456
A) 3 B) 3
/ \ \
9 20 20
/ \ / \
15 7 15 7
The binary tree A is a height-balanced binary tree, but B is not.
"""Definition of TreeNode:class TreeNode: def __init__(self, val): self.val = val self.left, self.right = None, None"""classSolution:""" @param root: The root of binary tree. @return: True if this Binary tree is Balanced, or false. """defmaxPath(self,root):ifroot.left!=None:left=self.maxPath(root.left)else:left=0ifroot.right!=None:right=self.maxPath(root.right)else:right=0ifleft==-1orright==-1orabs(left-right)>1:return-1else:returnmax(left,right)+1defisBalanced(self,root):# write your code hereifroot==None:returnTrueifself.maxPath(root)==-1:returnFalseelse:returnTrue