Bird
Raised Fist0
DSA Javascriptprogramming~5 mins

Recursion Concept and Call Stack Visualization in DSA Javascript - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is recursion in programming?
Recursion is when a function calls itself to solve smaller parts of a problem until it reaches a simple case it can solve directly.
Click to reveal answer
beginner
What is the base case in a recursive function?
The base case is the simplest situation where the function stops calling itself to avoid infinite loops.
Click to reveal answer
intermediate
How does the call stack help in recursion?
The call stack keeps track of all the function calls. Each recursive call adds a new layer, and when a base case is reached, the stack unwinds to return results.
Click to reveal answer
intermediate
What happens if a recursive function has no base case?
Without a base case, the function keeps calling itself forever, causing a stack overflow error because the call stack grows too large.
Click to reveal answer
advanced
Explain the difference between direct and indirect recursion.
Direct recursion is when a function calls itself. Indirect recursion happens when a function calls another function that eventually calls the first function again.
Click to reveal answer
What is the purpose of the base case in recursion?
ATo increase the call stack size
BTo make the function call itself more times
CTo print the result
DTo stop the recursion and prevent infinite calls
What does the call stack do during recursion?
AKeeps track of all active function calls
BDeletes previous function calls
CRuns functions in parallel
DPrevents recursion
What error occurs if recursion has no base case?
AMemory leak
BSyntax error
CStack overflow
DType error
Which of these is an example of direct recursion?
AFunction A calls Function B, which calls Function C
BFunction A calls itself
CFunction A calls Function B, which calls Function A
DFunction A calls Function B only once
In recursion, what happens when the base case is reached?
AThe function stops calling itself and returns a value
BThe function calls itself again
CThe call stack resets
DThe program crashes
Describe how the call stack works during a recursive function call.
Think about how each call waits for the next before finishing.
You got /3 concepts.
    Explain why a base case is essential in recursion and what could happen without it.
    Consider what happens if the function never stops calling itself.
    You got /3 concepts.

      Practice

      (1/5)
      1. What happens when a recursive function calls itself without a base case?
      easy
      A. It returns immediately without doing anything
      B. It causes an infinite loop leading to a stack overflow error
      C. It executes only once and stops
      D. It throws a syntax error

      Solution

      1. Step 1: Understand the role of base case in recursion

        The base case stops the recursion by providing a condition to end calls.
      2. Step 2: Analyze what happens without a base case

        Without a base case, the function keeps calling itself endlessly, filling the call stack.
      3. Final Answer:

        It causes an infinite loop leading to a stack overflow error -> Option B
      4. Quick Check:

        No base case = infinite recursion = stack overflow [OK]
      Hint: Always check for a base case to stop recursion [OK]
      Common Mistakes:
      • Thinking recursion stops automatically
      • Confusing base case with recursive case
      • Assuming syntax error occurs without base case
      2. Which of the following is the correct syntax to define a recursive function countDown in JavaScript?
      easy
      A. function countDown(n) { if(n <= 0) return; countDown(n - 1); }
      B. function countDown(n) { while(n > 0) countDown(n - 1); }
      C. function countDown(n) { for(let i=0; i
      D. function countDown(n) { if(n < 0) countDown(n + 1); }

      Solution

      1. Step 1: Identify correct base case and recursive call

        function countDown(n) { if(n <= 0) return; countDown(n - 1); } has a base case (if n <= 0 return) and calls itself with n-1.
      2. Step 2: Check other options for syntax or logic errors

        function countDown(n) { while(n > 0) countDown(n - 1); } uses while loop causing infinite recursion; C uses for loop incorrectly; D lacks proper base case.
      3. Final Answer:

        function countDown(n) { if(n <= 0) return; countDown(n - 1); } -> Option A
      4. Quick Check:

        Base case + recursive call = correct syntax [OK]
      Hint: Look for base case and self-call in function [OK]
      Common Mistakes:
      • Using loops instead of recursion
      • Missing base case
      • Wrong recursive call argument
      3. What is the output of the following code?
      function factorial(n) {
        if (n === 0) return 1;
        return n * factorial(n - 1);
      }
      console.log(factorial(3));
      medium
      A. 9
      B. 1
      C. 3
      D. 6

      Solution

      1. Step 1: Trace factorial calls for n=3

        factorial(3) = 3 * factorial(2); factorial(2) = 2 * factorial(1); factorial(1) = 1 * factorial(0); factorial(0) = 1.
      2. Step 2: Calculate return values step-by-step

        factorial(1) = 1 * 1 = 1; factorial(2) = 2 * 1 = 2; factorial(3) = 3 * 2 = 6.
      3. Final Answer:

        6 -> Option D
      4. Quick Check:

        3! = 6 [OK]
      Hint: Factorial n! = n * (n-1)! [OK]
      Common Mistakes:
      • Confusing multiplication order
      • Forgetting base case returns 1
      • Calculating factorial(0) incorrectly
      4. Find the error in this recursive function that calculates the sum of numbers from 1 to n:
      function sum(n) {
        if (n === 1) return 1;
        return n + sum(n);
      }
      medium
      A. The base case is missing
      B. The function should return n - sum(n - 1)
      C. The recursive call uses the same argument causing infinite recursion
      D. The function should use a loop instead

      Solution

      1. Step 1: Check the recursive call argument

        The function calls sum(n) again without reducing n, causing infinite recursion.
      2. Step 2: Identify correct recursive call

        It should call sum(n - 1) to reduce n and reach base case.
      3. Final Answer:

        The recursive call uses the same argument causing infinite recursion -> Option C
      4. Quick Check:

        Recursive call argument must change to reach base case [OK]
      Hint: Recursive call argument must move toward base case [OK]
      Common Mistakes:
      • Calling function with same argument
      • Missing base case
      • Using wrong operator in return
      5. Consider this recursive function that reverses a string:
      function reverseStr(str) {
        if (str === "") return "";
        return reverseStr(str.substring(1)) + str[0];
      }
      console.log(reverseStr("code"));

      What is the output and why?
      hard
      A. "edoc" because the function moves first character to the end recursively
      B. "code" because substring does not change the string
      C. "" because base case returns empty string immediately
      D. SyntaxError because substring is used incorrectly

      Solution

      1. Step 1: Understand recursion on string substring

        The function calls itself with the string minus the first character each time.
      2. Step 2: Trace the concatenation on return

        Each call adds the first character of the current string to the end of the reversed substring, reversing the string.
      3. Final Answer:

        "edoc" because the function moves first character to the end recursively -> Option A
      4. Quick Check:

        Recursive substring + concat reverses string [OK]
      Hint: Recursion with substring(1) + first char reverses string [OK]
      Common Mistakes:
      • Thinking substring does not change string
      • Confusing base case effect
      • Assuming syntax error with substring
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard