Leetcode劍指offer系列 平衡二叉樹

2021-10-06 19:21:55 字數 920 閱讀 2115

傳送門:

輸入一棵二叉樹的根節點,判斷該樹是不是平衡二叉樹。如果某二叉樹中任意節點的左右子樹的深度相差不超過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 <= 樹的結點個數 <= 10000

採用後續遍歷的方式。計算子節點的高度,如果子節點本身不是平衡二叉樹,就將高度置為-1。用這種方式,遞迴時只需要維護乙個返回值即可。

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

int getsubtreedepth(treenode node)

int depthleft = getsubtreedepth(node.left);

int depthright = getsubtreedepth(node.right);

if (depthleft < 0 || depthright < 0 || depthleft - depthright > 1 ||

depthright - depthleft > 1)

return math.max(depthleft, depthright) + 1;

}}

leetcode 劍指 Offer 專題(七)

劍指 offer 專題第七部。題目 劍指 offer 66.構建乘積陣列。定義 begin v 1 i prod a k a 0 times a 1 times dots times a i 1 quad v 1 0 1 v 2 i prod a k a i 1 times dots times a...

leetcode劍指offer 字串

二叉樹,鍊錶,字串 思路 進行兩次反轉 1.對整個句子反轉 2.對句子中的單詞反轉 經過三次反 1.反轉前面的字串。2.反轉後面的字串。3.反轉整個字串 不能直接用力扣46全排列的 力扣46是無重複的數字,這個題是有重複的。正確的解法 不用not in tmp來判斷這個字母是否需要遍歷,定義乙個us...

LeetCode 劍指offer刷題10 1

leetcode 劍指offer刷題 劍指 offer 10 i.斐波那契數列 寫乙個函式,輸入 n 求斐波那契 fibonacci 數列的第 n 項。斐波那契數列的定義如下 f 0 0,f 1 1 f n f n 1 f n 2 其中 n 1.斐波那契數列由 0 和 1 開始,之後的斐波那契數就是...