題目描述:
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。
本題中,一棵高度平衡二叉樹定義為:
乙個二叉樹每個節點的左右兩個子樹的高度差的絕對值不超過1。
示例 1:
給定二叉樹 [3,9,20,null,null,15,7]
3/ \
9 20
/ \
15 7
返回 true 。
示例 2:
給定二叉樹 [1,2,2,3,3,null,null,4,4]
1/ \
2 2
/ \3 3
/ \4 4
返回 false 。
題目分析:
求二叉樹高度,可以考慮遞迴深度遍歷求解,再考慮本題要求,發現在深度遍歷的同時,可以順便判斷每個結點是否滿足其左右子樹的高度差的絕對值是否小於等於1,所以,我們可以用乙個全域性布林變數來表示該二叉樹是否為平衡二叉樹,然後在遞迴遍歷時,對每個結點進行判斷,一旦不滿足,就把全域性布林變數置為false,最後在主函式中返回該布林變數即可。
**如下:
/**
* definition for a binary tree node.
* struct treenode
* };
*/class
solution
private
:bool is_balance =1;
//全域性布林變數
intheight
(treenode *p)
else
return0;
//如果為結點為空,返回高度0}}
;
leetcode 110 平衡二叉樹 平衡二叉樹
leetcode 110 平衡二叉樹 平衡二叉樹要求所有節點的左右子樹的高度差小於1,因此,只需在遍歷的時候返回其左右子樹的深度。definition for a binary tree node.public class treenode treenode int val treenode int...
LeetCode110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回true。示例 2 給定二叉樹 1,2,2,3,3,null,nul...
LeetCode 110 平衡二叉樹
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為 乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7返回true。示例 2 給定二叉樹 1,2,2,3,3,null,nul...