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