A recursive method definition contains one or more calls to the function being defined. In many cases, the recursive method is very powerful and compact in defining the solution to complex problems. The main disadvantages are that it demands a relatively large amount of memory and time to build stack.
As there is a choice between using iterative and recursive algorithms, so programmers must evaluate the individual situation and make a good decision for their use.