思路:判斷一棵樹是否是平衡二叉樹。屬於簡單題,用dfs記錄每條路徑的長度,比較每個節點的左右子樹長度,只要不滿足就是false。
但是做到一半我竟然卡住了:
public
boolean flag =
true
;public
boolean
isbalanced
(treenode root)
public
intdfs
(treenode root)
所以我開始思考這裡是return 左右子樹的最長的還是最短的還是任意乙個皆可呢?我嘗試了發現只能是 return math.max(left,right)+1 ,至於為什麼是最大其實畫個圖就出來了(這裡不提供圖)。平衡二叉樹的設計就是為了避免最長路徑的出現,所以我們再比較時應該更留意最長的那個。 力扣 簡單 110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,null,4,4 返回 f...
力扣題解 110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,nu...
LeetCode 力扣 110 平衡二叉樹
判斷一棵樹是否是平衡二叉樹,平衡二叉樹定義如下 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過 1,並且左右兩個子樹都是一棵平衡二叉樹。直接按照定義來吧,並且多定義乙個求高度的函式,之前在 104 題 做過。public boolean isbalanced treenode root 它的左...