題目描述:
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹。
題解:
平衡樹(balance tree,bt) 指的是,任意節點的子樹的高度差都小於等於1。
求出每顆子二叉樹的子樹高度差,如果大於1那就不是平衡二叉樹,反之一定是。
// 求子樹高度差
public
intgetdepth
(treenode root)
int left = getdepth (root.left)
;int right = getdepth (root.right)
;return math.max (left,right)+1
;}public
boolean
isbalanced_solution
(treenode root)if(
!isbalanced_solution (root.left))if
(!isbalanced_solution (root.right)
)int left =
getdepth
(root.left)
;int right =
getdepth
(root.right)
;int dif = left - right;
if(math.abs (dif)==1
)return
false
;}
JZ39 劍指offer 平衡二叉樹
題目描述 輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。在這裡,我們只需要考慮其平衡性,不需要考慮其是不是排序二叉樹 平衡二叉樹 balanced binary tree 具有以下性質 它是一棵空樹或它的左右兩個子樹的高度差的絕對值不超過1,並且左右兩個子樹都是一棵平衡二叉樹。class solut...
39 平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。遞迴判斷左子樹和右子樹是否是平衡二叉樹 從下往上遍歷,如果子樹是平衡二叉樹,則返回子樹的高度 如果發現子樹不是平衡二叉樹,則返回 1,直接停止遍歷,這樣至多只對每個結點訪問一次。public class solution public intgetdep...
39平衡二叉樹
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。平衡二叉樹根據定義,父結點需要子結點兩個資訊 一是左右子樹是否平衡,二是左右子樹的高度差是否 1,注意在最終返回資料時,返回左右子樹的最大高度 1 頭結點 我們可以自己建立乙個結構實現。public static resultdata isbalance...