Binary tree

来自wrc's Wiki
跳到导航 跳到搜索

二叉树。

求深度的变种

例如 LeetCode 110543,所求值和深度有关,所以在求深度的递归过程中进行一些操作。

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