美文网首页leetcode和算法----日更
leetcode 543 二叉树的直径

leetcode 543 二叉树的直径

作者: Arsenal4ever | 来源:发表于2020-01-31 22:08 被阅读0次

首先理解题意,最大直径不包含当前节点。

其次求直径解法:求该节点左边的最大长度+该节点右边的最大长度

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def diameterOfBinaryTree(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        self.maxLength = 0
        self.getLength(root)
        return self.maxLength

    def getLength(self, node):
        if not node:
            return 0
        left = self.getLength(node.left)    # 左边最长路径
        right = self.getLength(node.right)  # 右边最长路径
        self.maxLength = max(self.maxLength, left + right)  # 直径
        return max(left, right) + 1     # 以当前节点为定点的最长路径

相关文章

  • tag9:树 二叉树的直径

    leetcode543. 二叉树的直径[https://leetcode-cn.com/problems/diam...

  • leetcode 543 二叉树的直径

    首先理解题意,最大直径不包含当前节点。 其次求直径解法:求该节点左边的最大长度+该节点右边的最大长度

  • 2020-03-10 刷题1(二叉树的直径)

    543 二叉树的直径 对于根节点r,它的直径无非有三种可能:左子树的直径,右子树的直径,已经左右子树高度之和。所以...

  • LeetCode 543. 二叉树的直径

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

  • leetcode 543. 二叉树的直径

    题目描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可...

  • 二叉树的直径(LeetCode543.二叉树的直径)

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

  • LeetCode | 0543. Diameter of Bin

    LeetCode 0543. Diameter of Binary Tree二叉树的直径【Easy】【Python...

  • Leetcode_543_二叉树的直径_hn

    题目描述 给定一棵二叉树,你需要计算它的直径长度。一棵二叉树的直径长度是任意两个结点路径长度中的最大值。这条路径可...

  • LeetCode 第 543 题:二叉树的直径

    1、前言 2、思路 这道题看似简单,其实不容易写出高效的解法。最开始我使用求二叉树的最大深度的例子,先求此节点的左...

  • 二叉树 5 (二叉树的直径 leetcode 543)

    思想 二叉树的核心思想是分治和递归,特点是遍历方式。解题方式常见两类思路: 遍历一遍二叉树寻找答案; 通过分治分解...

网友评论

    本文标题:leetcode 543 二叉树的直径

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