110. 平衡二叉树
解法一:递归
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
self.flag = True
self.helper(root)
return self.flag
def helper(self, root):
if not root: #递归出口
return 0
lh = self.helper(root.left) #递归求左子树高
rh = self.helper(root.right) #递归求右子树高
if abs(lh - rh) > 1: #若发现不平衡
self.flag = False
return max(lh, rh) + 1var isBalanced = function(root) {
var helper = function(root) {
if (root === null) {
return 0
}
let lh = helper(root.left)
let rh = helper(root.right)
if (Math.abs(lh - rh) > 1) {
flag = false
}
return Math.max(lh, rh) + 1
}
let flag = true
helper(root)
return flag最后更新于