leetcode-110 平衡二叉树
leetcode-110 平衡二叉树
平衡二叉树特点:在二叉树中,每个节点的左右子树高度只差小于等于1
- 遍历二叉树中的每个节点
- 计算每个节点的左右子树高度
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
if not root:
return True
#计算根节点左右子树的高度差
if abs(self.getHigh(root.left)-self.getHigh(root.right))>1:
return False
#递归计算
return self.isBalanced(root.left) and self.isBalanced(root.right)
def getHigh(self,root):
if not root:
return 0
if root and not root.left and not root.right:
return 1
l=self.getHigh(root.left)
r=self.getHigh(root.right)
return l+1 if l>r else r+1