給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。
本題中,一棵高度平衡二叉樹定義為:
乙個二叉樹每個節點的左右兩個子樹的高度差的絕對值不超過1。
示例 1:
給定二叉樹[3,9,20,null,null,15,7]
3
/ \ 9
20/ \
157
返回true
。
示例 2:
給定二叉樹[1,2,2,3,3,null,null,4,4]
1
/ \ 2
2/ \
33/ \
44
返回false
。
一棵二叉樹平衡的條件:每個節點的左右兩個子樹的高度差的絕對值不超過1。
可以分三步:
當前樹根結點的左右子樹的高度差絕對值不超過1。
左子樹平衡:以當前樹根結點的左子結點為根結點的子樹要平衡。
右子樹平衡:以當前樹根結點的右子結點為根結點的子樹要平衡。
上面3步,有1步不滿足,則這個二叉樹不平衡;只有同時滿足上面3個條件,二叉樹才平衡。第2、3步判斷左右子樹的平衡和第1步方法相同。
計算樹高度的方法:
一棵二叉樹的高度 = 根結點的高度(即1)+ 左右子樹高度的最大值
/**
* definition for a binary tree node.
* public class treenode
* }*/class
solution
public
intheight
(treenode node)
}
其他方法可參考krahets。
如有不當之處,歡迎讀者批評指正!
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,n...
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回 true 思路 注釋 private boolean isbala...
110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 示例 2 給定二叉樹 1,2,2,3,3,null,n...