class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
# 這道題使用中序遍歷加上剪枝的方法來做的,
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
if self.dfs(root) == -1:return False
else:return True
def dfs(self,root):
# 如果節點為空就回傳0
if not root:return 0
# 遍歷左節點
left = self.dfs(root.left)
# 如果左節點不是平衡二叉樹,直接回傳
if left == -1:return -1
# 遍歷右節點,同理
right = self.dfs(root.right)
if right == -1:return -1
# 這里就保證了左右節點都是平衡二叉樹,所以就判斷當前root是不是平衡二叉樹,
return max(left,right) + 1 if abs(left - right) <= 1 else -1
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/55147.html
標籤:Python
上一篇:24字串相乘
下一篇:在不規則表單上繪制按鈕
