第一次嘗試
給定乙個二叉樹,判斷它是否是高度平衡的二叉樹。本題中,一棵高度平衡二叉樹定義為:乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1 。leetcode鏈結
//計算節點深度的函式
intdeep
(struct treenode* root)
//拿到左右子樹各自的深度
int _left =
deep
(root->left)
;int _right =
deep
(root->right)
;//取最大值並加一返回,加一是代表算上了當前節點的乙個深度
return _left > _right ? _left +
1: _right +1;
}bool isbalanced
(struct treenode* root)
//分別計算每乙個節點左右子樹各自的深度
int __left =
deep
(root->left)
;int __right =
deep
(root->right)
;//然後判斷差的絕對值是否小於 2,以及判斷他的左右子樹是否滿足平衡二叉樹,採用遞迴的方法
return
abs(__left - __right)
<2&&
isbalanced
(root->left)
&&isbalanced
(root->right)
;}
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...