Recursion, in computer science is when a function calls itself. This may look confusing at first sight but can be very useful to solve certain types of problems.

Fibonacci Numbers

An example of a problem that can be solved by recursion is generation of Fibonacci numbers. Fibonacci numbers are the sequence of numbers: 0, 1, 1, 2, 3, 4, 5, 8, 13, … They are generated by adding the last two numbers in the fibonnaci sequence, other than the first two numbers which are 0 and 1.

0 and 1 are the base cases, the recursive function is not called in this case.

Lets take a look at one of the ways to solve this problem using code.

function fibonnaci(n) {
    if (n < 2) {
        return 1
    } else {
        return fibonnaci(n - 1) + fibonnaci(n - 2)

Press the run button below to see how the code runs. Each circle node is a function call and the edges represent what is returned by the function call. As the visualization shows a tree of function calls that are done when running the code fibonacci(4).