leetcode 面試題55 平衡二叉樹

2021-10-06 21:39:38 字數 1081 閱讀 2831

面試題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...