A successor node is the node in a binary search tree that is the leftmost node of the right subtree. I.e, it is the closest value to the current node that is larger than it.

To find a successor, we would effectively need a findMin function of the following form:

Node *& findMin(Node *& r){
 
	if(r->left){
		findMin(r->left);
	} else {
	return r;
	}
}