Invertir una cadena con recursión en Java

Aquí hay un código Java para invertir una cadena de forma recursiva.

Podría alguien dar una explicación de cómo funciona?

public static String reverse(String str) {
    if ((null == str) || (str.length() <= 1)) {
        return str;
    }
    return reverse(str.substring(1)) + str.charAt(0);
}

No entiendo cómo puede funcionar esto.

Respuestas a la pregunta(30)

Su respuesta a la pregunta