def successeur(self):
    if self.right is not None:
        return self.right.minimum()
    node = self
    while node.is_right_child():
        node = node.parent
    return node.parent