Binary tree
跳到导航
跳到搜索
二叉树。
求深度的变种
例如 LeetCode 110 和 543,所求值和深度有关,所以在求深度的递归过程中进行一些操作。
LeetCode 543. Diameter of Binary Tree
树的直径为节点左右深度之和的最大值。便在计算深度时顺便遍历每个节点求最大的深度和,就为直径:
def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
diameter = 0
def rec(root):
nonlocal diameter
if root is None:
return 0
left = rec(root.left)
right = rec(root.right)
diameter = max(diameter, left + right)
return max(left, right) + 1
rec(root)
return diameter