General algorithm: to delete N, if it has 2 subtrees, replace the value in N with the largest value in its left subtree and then delete the node with the largest value from its left subtree.

Note: the largest value has at most one subtree.

Why? It is the largest value: it doesn't have a right subtree.