美文网首页
2021-11-25 543. 二叉树的直径【Easy】

2021-11-25 543. 二叉树的直径【Easy】

作者: JackHCC | 来源:发表于2021-11-25 23:11 被阅读0次

    定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可能穿过也可能不穿过根结点。

    示例 :
    给定二叉树

          1
         / \
        2   3
       / \     
      4   5    
    

    返回 3, 它的长度是路径 [4,2,1,3] 或者 [5,2,1,3]。

    注意:两结点之间的路径长度是以它们之间边的数目表示。

    方法一:

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, val=0, left=None, right=None):
    #         self.val = val
    #         self.left = left
    #         self.right = right
    class Solution:
        def __init__(self):
            self.mnum = 0
    
        def diameterOfBinaryTree(self, root):
            """
            :type root: TreeNode
            :rtype: int
            """
            def length(node):
                if not node: return 0
                llen = length(node.left)
                rlen = length(node.right)
                self.mnum = max(self.mnum, llen + rlen)
                return max(llen, rlen) + 1
            
            length(root)
            return self.mnum
    

    相关文章

      网友评论

          本文标题:2021-11-25 543. 二叉树的直径【Easy】

          本文链接:https://www.haomeiwen.com/subject/dznotrtx.html