給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。
本題中,一棵高度平衡二叉樹定義為:
乙個二叉樹示例 1:每個節點 的左右兩個子樹的高度差的絕對值不超過 1 。
輸入:root = [3,9,20,null,null,15,7]
輸出:true
示例 2:
輸入:root = [1,2,2,3,3,null,null,4,4]
輸出:false
示例3:
輸入:root =
輸出:true
本題承接劍指 offer 55 - i. 二叉樹的深度思路,計算出左右子樹的高度,我們只需要判定左子樹高度減去右子樹高度的絕對值是否大於一就可以知道當前判定的樹是否為平衡二叉樹。這裡唯一難想的就是如何將int的返回值轉換為題目要求的boolean返回值。這裡我們採用自底向上的思路,判定每個子樹是否為平衡二叉樹,如果左子樹高度減去右子樹高度的絕對值大於一,證明當前子樹不是平衡二叉樹,我們返回乙個特定的值,給上層判定提供資訊說你的子樹已經不是平衡二叉樹了,這裡選用-1來傳遞資訊。
具體**如下:
/**
* definition for a binary tree node.
* public class treenode
* treenode(int val)
* treenode(int val, treenode left, treenode right)
* }*/class solution
int dfs(treenode node)
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 返回 false 若...
Leetceode 二叉樹 110 平衡二叉樹
110.平衡二叉樹 難度簡單458收藏分享切換為英文關注反饋 給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回tru...
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,n...