        self.left_child = left_child
        self.right_child = right_child

def greatest_node(root: Node):
    node_max_right = root.value
    node_max_left = root.value
    if root.left_child is not None:
        node_max_right = max(root.left_child.value, greatest_node(root.left_child))

    if root.right_child is not None: