recursion
when a method calls itself
recursion method call argument
change the argument passed into the function with every call and work towards the base case
base case
when the function does not call itself, ends the recursion
recursion stack frames
continues to add stack frames until the base case is reached, then it works back down the stack
what is recursion good for?
> breaking problems down into smaller instances
allows repetition
process data structures that show similar structures on a smaller scale