You are on page 1of 1

In head recursion, the recursive call, when it happens, comes before other

processing in the function (think of it


happening at the top, or head, of the function).
In tail recursion, it’s the opposite—the processing occurs before the recursive
call. Choosing between the two
recursive styles may seem arbitrary, but the choice can make all the difference.
A function with a path with a single recursive call at the beginning of the path
uses what is called head recursion.
The factorial function of a previous exhibit uses head recursion. The first thing
it does once it determines that
recursion is needed is to call itself with the decremented parameter. A function
with a single recursive call at the
end of a path is using tail recursion.
public void tail(int n)
{
}
if(n == 1)
return;
else
System.out.println(n);
tail(n-1);
public void head(int n)
{
if(n == 0)
return;
else
head(n-1);
System.out.println(n);
}
If the recursive call occurs at the end of a method, it is called a
tail recursion. The tail recursion is
similar to a
loop. The
method executes all the statements before jumping into the next recursive call.
If the recursive call occurs at the
beginning of a method, it is called a head recursion. The
method saves
the state before jumping into the next recursive call

You might also like