Recursion is a programming technique in which a function callsitself with a modified version of its original input
Recursion is often used to solve problems that can be divided into smaller subproblems
In data structures, recursion can be used to traverse trees and graphs.
One advantage of recursion is that it can make the code more concise and easier to read
However, the disadvantage of recursion is that it can be more difficult to understand and debug
Recursion consume more memory due to the function calls being stored on the call stack.
It is important to implement a base case to terminates the recursion function otherwise the function will continue to call itself indefinitely and may cause a memory overflow