Balanced Binary Tree
# Definition for a binary tree node
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# @param root, a tree node
# @return a boolean
def isBalanceHelp(self, root):
if root == None:
return (True, 0)
le = self.isBalanceHelp(root.left)
if le[0] == False: return le
ri = self.isBalanceHelp(root.right)
if ri[0] == False: return ri
ret = (-1 <= abs(le[1] - ri[1]) <= 1, max(le[1], ri[1]) + 1)
return ret
def isBalanced(self, root):
return self.isBalanceHelp(root)[0]
本文介绍了一种用于判断二叉树是否平衡的递归算法。通过递归地检查每个子树的高度差来确保整棵树的平衡性。该算法不仅返回了平衡性的判断结果,还计算出了树的高度。

1161

被折叠的 条评论
为什么被折叠?



