标签:递归

数据结构与算法刷题之【树】篇

<p>汇总树与二叉树相关的数据结构与算法刷题笔记,讲解二叉树种类、遍历方式与递归分治思想,涵盖路径、深度、构造等经典题型并给出Java题解与思路分析。</p>

数据结构与算法刷题之【动态规划】篇

<p>汇总动态规划相关的数据结构与算法刷题笔记,讲解递归、状态定义与转移方程等核心思想,涵盖背包、路径、子序列等经典题型并给出Java实现与优化思路。</p>

LeetCode 62. 不同路径(动态规划/递归)

<p>本文讲解 LeetCode 第 62 题「不同路径」,计算机器人从左上角到右下角只能向右或向下走的路径数。给出二维动态规划、朴素递归与记忆化递归三种实现,递推式 dp[i][j]=dp[i-1][j]+dp[i][j-1],附 Java 代码。</p>

AcWing 蓝桥杯AB组辅导课 01、递归与递推

<p>本文是 AcWing 蓝桥杯 AB 组辅导课第一讲「递归与递推」的学习笔记,涵盖斐波那契数列、递归实现指数型/排列型/组合型枚举、带分数、费解的开关、飞行员兄弟、翻硬币等经典例题,均给出 Java 题解与图解分析。</p>

leetcode【链表—简单】206.反转链表

<p>本文记录 LeetCode 206 反转链表的解题过程,题目要求反转单链表并返回新头节点。文章先给出题目描述与本地调试代码,再分别讲解双指针迭代法与递归两种解法,分析指针移动与递归终止条件,并配图说明反转过程,适合链表基础入门练习参考。</p>

leetcode【链表—中等】24.两两交换链表中的节点

<p>本文讲解 LeetCode 24 两两交换链表中的节点,要求实际交换相邻节点而非只改节点值。文章给出题目描述和本地调试代码,并详细分析三指针移动、虚拟头节点以及递归三种解法,配合图解说明指针移动与边界处理,帮助掌握链表节点交换的通用套路。</p>

leetcode【二叉树—简单】二叉树递归遍历

<p>本文讲解二叉树的前序、中序、后序递归遍历,对应 LeetCode 144、94、145 三道题。文章给出节点定义与本地调试代码,分别说明三种遍历中访问根节点值的时机,并用递归方式简洁实现,帮助建立二叉树遍历的基础认知。</p>

leetcode【二叉树—简单】226.翻转二叉树

<p>本文记录 LeetCode 226 翻转二叉树的解法,要求交换每个节点的左右子树。文章给出题目描述与调试代码,介绍采用前序递归遍历,每访问一个节点就交换其左右孩子,再递归处理左右子树的实现方式,并附上相关背景趣闻。</p>

leetcode【二叉树—简单】101.对称二叉树

<p>本文讲解 LeetCode 101 对称二叉树,判断二叉树是否镜像对称。文章给出题目描述与调试代码,介绍递归比较左右外侧与内侧节点的解法,并用 flag 提前终止无意义比较,同时给出用队列成对出入节点的迭代实现。</p>

leetcode【二叉树—简单】104.二叉树的最大深度

<p>本文记录 LeetCode 104 二叉树的最大深度,求根节点到最远叶子节点的最长路径节点数。文章给出题目描述与调试代码,介绍递归取左右子树最大值加一的精简写法,以及借助队列层序遍历统计层数的迭代解法。</p>

leetcode【二叉树—简单】559.N 叉树的最大深度

<p>本文讲解 LeetCode 559 N 叉树的最大深度,求根到最远叶子节点的最长路径节点数。文章给出题目描述与调试代码,介绍通过遍历 children 列表递归比较子树深度取最大值加一的写法,以及借助队列逐层统计的迭代解法。</p>

leetcode【二叉树—简单】111.二叉树的最小深度

<p>本文记录 LeetCode 111 二叉树的最小深度,求根节点到最近叶子节点的最短路径节点数。文章给出题目描述与调试代码,强调叶子节点的判定,介绍对左右孩子为空的不同情况分别处理再取最小值的递归解法,避免误算单支子树。</p>

leetcode【二叉树—中等】222.完全二叉树的节点个数

<p>本文讲解 LeetCode 222 完全二叉树的节点个数,统计树中节点总数。文章给出题目描述与调试代码,介绍递归遍历左右子树并合并数量再加一的通用解法,适用于普通二叉树与完全二叉树,代码简洁直观。</p>

leetcode【回溯算法—中等】77.组合

<p>本文讲解 LeetCode 77 组合,返回 [1,n] 中所有 k 个数的组合。文章给出题目描述与调试代码,先指出暴力多重循环无法应对变化的 k,再重点介绍回溯法配合 startIndex 收缩选择范围,并给出剪枝优化减少无效递归。</p>