力扣日記 543 二叉樹的直徑

2021-10-03 16:53:03 字數 810 閱讀 8120

題目:543 二叉樹的直徑。

又名:求 二叉樹的每個節點的左右子樹高度和的最大值。

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。

依然遞迴。

這裡是求每個節點作為根節點時的高度和。

返回值為最大深度。

直徑就是左右子樹的最大深度。

class

solution

: length=

0def

diameterofbinarytree

(self, root: treenode)

->

int:

defdia

(root):if

not root:

return

0 leftlength=dia(root.left)

rightlength=dia(root.right)

self.length=

max(self.length,leftlength+rightlength)

return

max(leftlength,rightlength)+1

dia(root)

return self.length

執行用時 :48 ms, 在所有 python3 提交中擊敗了80.63%的使用者

記憶體消耗 :15.9 mb, 在所有 python3 提交中擊敗了10.72%的使用者

543 二叉樹的直徑 力扣

題意理解 求二叉樹從乙個葉子到另乙個葉子的路徑最大值,必然經過根節點 問題分析 遞迴先計算子樹的深度,然後用左右子樹深度和 1 其他最大子樹不一定經過根結點。可以是任意乙個子樹的最大直徑。鏈結int diameterofbinarytree treenode root void helper tre...

力扣 543 二叉樹的直徑

題目 給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過也可能不穿過根結點。示例 給定二叉樹 1 2 3 4 5 返回 3,它的長度是路徑 4,2,1,3 或者 5,2,1,3 注意 兩結點之間的路徑長度是以它們之間邊的數目表示。題解 pa...

力扣 543 二叉樹的直徑

求一棵二叉樹的直徑長度 任意兩個節點路徑長度中的最大值。例子 在這棵二叉樹中,直徑長度是3,路徑為 4 2 1 3 或者 5 2 1 3 從例子中我們可以看到,求二叉樹的直徑長度可以求左右子樹的深度,最後求和即可。而求左右子樹的深度可以用深度優先搜尋dfs。這條路徑可能穿過也可能不穿過根結點 def...