二叉樹習題1:平衡二叉樹
阿新 • • 發佈:2020-12-10
技術標籤:資料結構與演算法
問題:
給定一個二叉樹,判斷它是否是高度平衡的二叉樹。
本題中,一棵高度平衡二叉樹定義為:
一個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1 。
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution :
def isBalanced(self, root: TreeNode) -> bool:
return self.recur(root) != -1
def recur(self,root):
if not root:return 0
left = self.recur(root.left)
if left == -1:return -1
right = self.recur(root.right)
if right == -1:return -1
return max(left,right) + 1 if abs(left - right ) < 2 else -1