def level_order(root: Node | None) -> Sequence[Node | None]:
    output: list[Any] = []

    if root is None:
        return output

    process_queue = deque([root])

    while process_queue:
        node = process_queue.popleft()
        output.append(node.data)

        if node.left:
            process_queue.append(node.left)
        if node.right:
            process_queue.append(node.right)
    return output