Level, Height, Depth

Categorize

543. Diameter of Binary Tree (Easy)

def diameterOfBinaryTree(self, root: Optional[TreeNode]) -> int:
    def recursion(root):
        if root:
            nonlocal diameter
            left_height = recursion(root.left)
            right_height = recursion(root.right)
            diameter = max(diameter, left_height + right_height)
            return max(left_height, right_height) + 1
        return 0

    diameter = 0
    recursion(root)
    return diameter

366. Find Leaves of Binary Tree (Medium)

def findLeaves(self, root: Optional[TreeNode]) -> List[List[int]]:
    def recursion(node):
        if node:
            left_height = recursion(node.left)
            right_height = recursion(node.right)
            height = max(left_height, right_height) + 1
            hm[height].append(node.val)
            return height
        return 0

    hm = defaultdict(list)
    recursion(root)
    return list(hm.values())