getfromcode

九章算法递归九讲

后端开发
课程简介

递归思维的结构化拆解 递归是算法设计中处理分治与自相似结构的核心范式,但许多开发者在面试或实际工程中容易陷入逻辑混乱或栈溢出陷阱。本套教程“九章算法递归九讲”旨在解决这一痛点,它不依赖死记硬背,而是通过九个递进式的案例,剖析递归的边界条件、状态转移与子问题重叠。这种结构化的拆解方式,帮助读者建立对递归调用栈的直观认知,明确何时该用递归、何时该转为迭代,以及…

已有 21 人浏览 发布 2026-03-01 更新 2026-10-09

递归思维的结构化拆解

递归是算法设计中处理分治与自相似结构的核心范式,但许多开发者在面试或实际工程中容易陷入逻辑混乱或栈溢出陷阱。本套教程“九章算法递归九讲”旨在解决这一痛点,它不依赖死记硬背,而是通过九个递进式的案例,剖析递归的边界条件、状态转移与子问题重叠。这种结构化的拆解方式,帮助读者建立对递归调用栈的直观认知,明确何时该用递归、何时该转为迭代,以及如何处理递归中的性能瓶颈。对于需要深入理解后端业务中复杂树形结构处理、图遍历或动态规划初始化的工程师而言,这是一份极具针对性的思维训练资料。

适配基础与核心模块

该资料适合具备基础编程语法知识,但递归思维薄弱或仅在简单场景下使用过递归的开发者。你不需要精通高阶数学,但必须能读懂基本的函数调用逻辑。建议优先关注前三个讲次,这部分通常涵盖递归的基本定义、终止条件设置以及经典树结构遍历,这是构建递归直觉的基石。随后重点研读中间关于状态压缩或记忆化搜索的章节,这是递归从“能跑”到“高效”的关键转折点。最后几讲往往涉及复杂场景下的递归变体或与其他算法的混合应用,这部分内容密度大,需结合代码反复推敲。避免一开始就陷入复杂案例,先确保对简单递归的变量追踪能力,再逐步过渡到复杂状态维护。

独立能力与实践路径

学完这套教程,你应能独立设计并实现中等复杂度的递归算法,例如处理嵌套JSON结构、构建表达式解析器或实现特定的搜索算法。更重要的是,你能够识别出递归实现中的潜在风险,如重复计算导致的指数级时间复杂度,并主动引入缓存机制或转换为动态规划表格进行优化。在自学路径上,建议采取“看-写-改-测”的闭环模式。首先阅读教程中的逻辑推导,理解每一步子问题的划分依据;接着脱离文档,尝试独立复现代码,遇到卡顿再回看细节;随后对代码进行修改,尝试改变输入规模或边界条件,观察程序表现;最后编写单元测试,覆盖正常路径和极端边界,确保递归逻辑的健壮性。这种配合练习的方式,能将理论知识转化为肌肉记忆,使你在面对实际后端开发中的复杂数据结构时,能迅速构建出稳定且高效的递归解决方案。

网盘截图:

课程目录:

课程目录57 集
  • ├── 01 第一章【互动】参数传递和递归
  • │ ├── 递归九讲1.2 类的引用传递_水印.mp4
  • │ ├── 递归九讲1.1 值传递_水印.mp4
  • │ ├── 递归九讲1.3 数组的引用传递_水印.mp4
  • │ ├── 递归九讲1.4 包装类和不可变类型的传参_水印.mp4
  • │ ├── 递归九讲1.5 递归三要素_水印.mp4
  • │ ├── 递归九讲1.6 内存中的堆和栈_水印.mp4
  • ├── 04 第四章【互动】双向递归——二叉树的遍历与递归树
  • │ ├── 递归九讲4.4 二叉树的遍历 (代码讲解)_水印.mp4
  • │ ├── 递归九讲4.2 二叉树的概念_水印.mp4
  • │ ├── 递归九讲4.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲4.3 二叉树的遍历 (执行流程)_水印.mp4
  • │ ├── 递归九讲4.5 斐波那契数列_水印.mp4
  • │ ├── 递归九讲4.6 汉诺塔问题_error.mp4
  • ├── 02 第二章【互动】单向递归——循环与递归对比
  • │ ├── 递归九讲2.1 二阶阶乘_水印.mp4
  • │ ├── 递归九讲2.2 尾递归_水印.mp4
  • │ ├── 递归九讲2.4 尾递归改成迭代_水印.mp4
  • │ ├── 递归九讲2.3 尾递归代码演示_水印.mp4
  • │ ├── 递归九讲2.5 颠倒二进制位_水印.mp4
  • ├── 03 第三章【互动】单向递归——递归的妙用
  • │ ├── 递归九讲3.3 经典二分查找问题_水印.mp4
  • │ ├── 递归九讲3.4 快速幂_水印.mp4
  • │ ├── 递归九讲3.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲3.2 两两交换链表中的节点_水印.mp4
  • ├── 06 第六章【互动】多向递归——组合类问题
  • │ ├── 递归九讲6.2 子集(二叉树遍历解法)_水印.mp4
  • │ ├── 递归九讲6.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲6.4 子集 II_水印.mp4
  • │ ├── 递归九讲6.3 子集(组合数思路解法)_水印.mp4
  • │ ├── 递归九讲6.5 数字组合_水印.mp4
  • ├── 课件资料
  • │ ├── WM_Chapter 2. 单向递归——循环与递归对比.pdf
  • │ ├── WM_Chapter 1. 参数传递与递归.pdf
  • │ ├── WM_Chapter 5. 双向递归——二叉树的分治.pdf
  • │ ├── WM_Chapter 3. 单向递归——递归的妙用.pdf
  • │ ├── WM_Chapter 4. 双向递归——二叉树的遍历与递归树.pdf
  • │ ├── WM_Chapter 7. 多向递归——排列类问题.pdf
  • │ ├── WM_Chapter 6. 多向递归——组合类问题.pdf
  • │ ├── WM_Chapter 9. 非递归——排列组合类.pdf
  • │ ├── WM_Chapter 8. 非递归——二叉树类.pdf
  • ├── 05 第五章【互动】双向递归——二叉树的分治
  • │ ├── 递归九讲5.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲5.4 前序遍历和中序遍历构造二叉树_水印.mp4
  • │ ├── 递归九讲5.2 二叉树的最大深度_水印.mp4
  • │ ├── 递归九讲5.3 最大二叉树_水印.mp4
  • │ ├── 递归九讲5.5 中序遍历和后序遍历构造二叉树_水印.mp4
  • ├── 08 第八章【互动】非递归——二叉树类
  • │ ├── 递归九讲8.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲8.2 递归问题如果用非递归解决_水印.mp4
  • │ ├── 递归九讲8.3 用手写栈模拟递归的方式解决二叉树遍历问题_水印.mp4
  • │ ├── 递归九讲8.4 用 Morris算法解决二叉树的前序和中序遍历_水印.mp4
  • │ ├── 递归九讲8.5 用 Morris 算法解决二叉树的后序遍历_水印.mp4
  • │ ├── 递归九讲8.6 两种非递归解法的对比_水印.mp4
  • ├── 09 第九章【互动】非递归——排列组合类
  • │ ├── 递归九讲9.2 组合类问题非递归解法一_水印.mp4
  • │ ├── 递归九讲9.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲9.4 组合类问题非递归解法三_水印.mp4
  • │ ├── 递归九讲9.3 组合类问题非递归解法二_水印.mp4
  • │ ├── 递归九讲9.6 排列类问题非递归解法二_水印.mp4
  • │ ├── 递归九讲9.5 排列类问题非递归解法一_水印.mp4
  • ├── 07 第七章【互动】多向递归——排列类问题
  • │ ├── 递归九讲7.1 上个章节回顾_水印.mp4
  • │ ├── 递归九讲7.3 带重复元素的排列_水印.mp4
  • │ ├── 递归九讲7.2 全排列_水印.mp4
  • │ ├── 递归九讲7.4 第k个排列_水印.mp4
  • │ ├── 递归九讲7.5 下一个排列_水印.mp4

课程目录

01 第一章【互动】参数传递和递归6 集
  • 递归九讲1.2 类的引用传递_水印.mp4
  • 递归九讲1.1 值传递_水印.mp4
  • 递归九讲1.3 数组的引用传递_水印.mp4
  • 递归九讲1.4 包装类和不可变类型的传参_水印.mp4
  • 递归九讲1.5 递归三要素_水印.mp4
  • 递归九讲1.6 内存中的堆和栈_水印.mp4
04 第四章【互动】双向递归——二叉树的遍历与递归树6 集
  • 递归九讲4.4 二叉树的遍历 (代码讲解)_水印.mp4
  • 递归九讲4.2 二叉树的概念_水印.mp4
  • 递归九讲4.1 上个章节回顾_水印.mp4
  • 递归九讲4.3 二叉树的遍历 (执行流程)_水印.mp4
  • 递归九讲4.5 斐波那契数列_水印.mp4
  • 递归九讲4.6 汉诺塔问题_error.mp4
02 第二章【互动】单向递归——循环与递归对比5 集
  • 递归九讲2.1 二阶阶乘_水印.mp4
  • 递归九讲2.2 尾递归_水印.mp4
  • 递归九讲2.4 尾递归改成迭代_水印.mp4
  • 递归九讲2.3 尾递归代码演示_水印.mp4
  • 递归九讲2.5 颠倒二进制位_水印.mp4
03 第三章【互动】单向递归——递归的妙用4 集
  • 递归九讲3.3 经典二分查找问题_水印.mp4
  • 递归九讲3.4 快速幂_水印.mp4
  • 递归九讲3.1 上个章节回顾_水印.mp4
  • 递归九讲3.2 两两交换链表中的节点_水印.mp4
06 第六章【互动】多向递归——组合类问题14 集
  • 递归九讲6.2 子集(二叉树遍历解法)_水印.mp4
  • 递归九讲6.1 上个章节回顾_水印.mp4
  • 递归九讲6.4 子集 II_水印.mp4
  • 递归九讲6.3 子集(组合数思路解法)_水印.mp4
  • 递归九讲6.5 数字组合_水印.mp4
  • 课件资料
  • WM_Chapter 2. 单向递归——循环与递归对比.pdf
  • WM_Chapter 1. 参数传递与递归.pdf
  • WM_Chapter 5. 双向递归——二叉树的分治.pdf
  • WM_Chapter 3. 单向递归——递归的妙用.pdf
  • WM_Chapter 4. 双向递归——二叉树的遍历与递归树.pdf
  • WM_Chapter 7. 多向递归——排列类问题.pdf
  • WM_Chapter 6. 多向递归——组合类问题.pdf
  • WM_Chapter 9. 非递归——排列组合类.pdf
  • WM_Chapter 8. 非递归——二叉树类.pdf
05 第五章【互动】双向递归——二叉树的分治5 集
  • 递归九讲5.1 上个章节回顾_水印.mp4
  • 递归九讲5.4 前序遍历和中序遍历构造二叉树_水印.mp4
  • 递归九讲5.2 二叉树的最大深度_水印.mp4
  • 递归九讲5.3 最大二叉树_水印.mp4
  • 递归九讲5.5 中序遍历和后序遍历构造二叉树_水印.mp4
08 第八章【互动】非递归——二叉树类6 集
  • 递归九讲8.1 上个章节回顾_水印.mp4
  • 递归九讲8.2 递归问题如果用非递归解决_水印.mp4
  • 递归九讲8.3 用手写栈模拟递归的方式解决二叉树遍历问题_水印.mp4
  • 递归九讲8.4 用 Morris 算法解决二叉树的前序和中序遍历_水印.mp4
  • 递归九讲8.5 用 Morris 算法解决二叉树的后序遍历_水印.mp4
  • 递归九讲8.6 两种非递归解法的对比_水印.mp4
09 第九章【互动】非递归——排列组合类6 集
  • 递归九讲9.2 组合类问题非递归解法一_水印.mp4
  • 递归九讲9.1 上个章节回顾_水印.mp4
  • 递归九讲9.4 组合类问题非递归解法三_水印.mp4
  • 递归九讲9.3 组合类问题非递归解法二_水印.mp4
  • 递归九讲9.6 排列类问题非递归解法二_水印.mp4
  • 递归九讲9.5 排列类问题非递归解法一_水印.mp4
07 第七章【互动】多向递归——排列类问题5 集
  • 递归九讲7.1 上个章节回顾_水印.mp4
  • 递归九讲7.3 带重复元素的排列_水印.mp4
  • 递归九讲7.2 全排列_水印.mp4
  • 递归九讲7.4 第k个排列_水印.mp4
  • 递归九讲7.5 下一个排列_水印.mp4
课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。