【力扣日記】543 二叉樹的直徑

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

題目描述

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

算法思路

依然遞歸。
這裏是求每個節點作爲根節點時的高度和。
返回值爲最大深度。
直徑就是左右子樹的最大深度。

class Solution:
    length=0
    def diameterOfBinaryTree(self, root: TreeNode) -> int:
        def dia(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%的用戶

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章