# leetcode 110. 平衡二叉樹 ## 概述 這一題主要是判斷二叉樹是否平衡,所謂的平衡指的是樹左右兩邊的子節點深度(depth)相減不能大於1,否則這一顆二叉樹就是不衡的二叉樹。 這一題剛看到就想到了**後序遍歷**,因為是要計算左右兩邊節點的深度,再進行比較,必然需要先遍歷左右兩邊的節點之後,才遍歷到根節點做比較。 ```python= # 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 __init__(self): self.res = True def isBalanced(self, root: Optional[TreeNode]) -> bool: def dfs(root): if not root: return 0 left = dfs(root.left) right = dfs(root.right) if abs(right - left) > 1: self.res = False return 0 return max(left,right) + 1 dfs(root) return self.res ```