链表的基本知识:
链表是一种数据串,像一串用线(指针)串起来的珠子(节点)。每个“珠子”(节点)分两部分:存数据的“珠子芯”(数据域),和指向下一颗珠子的“线”(指针域)。珠子不用挨在一起放(内存非连续),靠“线”连起来就行。
常见的链表 1. 单链表:珠子只有一根线,只能从头串到尾,不能往回找。
2. 双向链表:珠子有两根线,一根往前、一根往后,能正反着找。
3. 循环链表:最后一颗珠子的线,回头串住第一颗,形成一个圈。
递归的核心思想
把一个大问题拆解成结构相同的小问题,直到小问题简单到可以直接解决(即“终止条件”),再通过小问题的解逐步推导出大问题的解。
可以类比“俄罗斯套娃”:要打开最外层的套娃(大问题),需要先打开内层的套娃(小问题),直到最内层的套娃(最小问题,可直接打开),再反向依次打开外层。
2. 递归三要素
(1)终止条件(Base Case)
定义递归何时停止,避免无限递归。
通常是问题的“最小规模”,比如:
计算阶乘时, n = 0 或 n = 1 时, factorial(n) = 1 。
遍历链表时,遇到 null (链表尾)则停止。
(2)递归公式(Recursive Case)
描述“大问题如何分解为小问题”,即函数自身调用的逻辑。
例如:阶乘 factorial(n) = n * factorial(n-1) ;链表反转时,先反转后续链表,再处理当前节点。
(3)参数变化
每次递归调用时,参数要向“终止条件”靠近(比如 n 减 1、链表指针后移),确保递归能终止。


405

被折叠的 条评论
为什么被折叠?



