面試題55 - ii. 平衡二叉樹
難度簡單27
輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過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
。
限制:
這個題思路,首先寫方法求解樹的深度,這裡可以遞迴,也可以借助佇列進行層次遍歷。
然後在對樹的每個節點的左右子節點做判斷,判斷當前節點是否滿足平衡二叉樹的要求條件。
從頂向下進行遍歷,這樣的方法存在缺點:存在大量重複的計算,效率低下。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
//遞迴法求解樹的深度
public int getdepth(treenode root)
}
考慮自底向上,後序遍歷+剪枝,不滿足條件時直接返回-1。
/**
* definition for a binary tree node.
* public class treenode
* }*/class solution
public int isbalancedhelper(treenode root)
}
LeetCode 面試題 04 04 檢查平衡性
實現乙個函式,檢查二叉樹是否平衡。在這個問題中,平衡樹的定義如下 任意乙個節點,其兩棵子樹的高度差不超過 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...
leetcode 面試題 04 04 檢查平衡性
題目 實現乙個函式,檢查二叉樹是否平衡。在這個問題中,平衡樹的定義如下 任意乙個節點,其兩棵子樹的高度差不超過 1。示例 1 給定二叉樹 3,9,20,null,null,15,7 3 9 20 15 7 返回 true 解題思路 此題為深度優先搜尋的例題,很適合入門。遞迴,左子樹與右子樹相減,判斷...
leetcode 面試題 04 04 檢查平衡性
實現乙個函式,檢查二叉樹是否平衡。在這個問題中,平衡樹的定義如下 任意乙個節點,其兩棵子樹的高度差不超過 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...