English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 1h 17m | 189 MB

Recursion, in which functions call themselves, is a foundational structure for algorithms. If you find it hard to break a technical problem down into its simplest form, learning recursion may be just what you need. In this course, software engineer Mustapha Rufai provides a detailed guide to understanding recursion using JavaScript, exploring common use cases and detailing ways to approach these kinds of algorithmic challenges. Mustapha teaches you how to think recursively, and safely make JavaScript use this classic pattern. He then moves to showing you how to improve the performance of recursive algorithms, and presents a series of recursive technical interview questions along with his solutions.

## Table of Contents

**Introduction**

1 Introduction to recursion algorithms in JavaScript

2 Get the most out of this course

**1. How to Think about Recursion**

3 Loops and iteration in JavaScript

4 Implement exponentials and factorials with JavaScript loops

5 What is recursion

6 What are base cases

7 Implement exponentials and factorials with recursion

8 Challenge Implement the join() function recursively

9 Solution Implement the join() function recursively

**2. How to Improve Recursive Algorithms**

10 What is tail recursion

11 Wrapper functions in JavaScript

12 Accumulators for tail recursion

13 Memoization to improve performance of recursive programs

14 JavaScript quickSort() with recursion

**3. Solving Recursive Technical Interview Questions**

15 How to approach recursive problems

16 Challenge Identify a palindrome

17 Solution Identify a palindrome

18 Challenge Count the number of leaves in a binary tree

19 Solution Count the number of leaves in a binary tree

20 Challenge Find middle of LinkedList

21 Solution Find middle of LinkedList

**Conclusion**

22 Dig deeper into JavaScript recursion

Resolve the captcha to access the links!