LC 速查

HOT 100索引 › B8 二叉树 Binary Tree

LC 543二叉树的直径Diameter of Binary Tree 简单

求树中任意两节点间路径的最大边数(直径,可不经根)。

思路 递归求深度,以 左深+右深 更新全局直径,向父返回 1+max(l,r)。时间 O(n)。

class Solution:
    def diameterOfBinaryTree(self, root):
        self.ans = 0

        def depth(node):
            if not node:
                return 0
            l = depth(node.left)
            r = depth(node.right)
            self.ans = max(self.ans, l + r)
            return 1 + max(l, r)

        depth(root)
        return self.ans
← 上一题 对称二叉树二叉树的层序遍历 下一题 →