543. Diameter of Binary Tree

image.png
class Solution(object):
    
    def diameterOfBinaryTree(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        height = {None:(0,0)}
        def getheight(root):
            if root in height: return height[root]
            l,r = getheight(root.left), getheight(root.right)
            res = (1+max(l), 1+max(r))
            height[root] = res
            return res
        getheight(root)
        
        def helper(root):
            if not root: return 0
            return max([helper(root.left), helper(root.right), sum(height[root])-2])
            
        return helper(root)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容