递归语句位置在函数中的位置

来源:2-4 链表与递归

努力做学霸123

2021-04-04 07:58:55

http://img.mukewang.com/climg/6069006509bb11aa10520742.jpg

在写递归的时候,不知道该把递归语句写在函数的哪个位置,有的时候递归语句在整个函数的末尾,有的时候就像这道题,递归语句在函数的中间,递归语句之后还有其他语句(这道题里面还包括了其他的return语句)。递归语句到底是该写在哪里,这个问题老是弄不懂,然后就写不出来。请问老师一下,我这种问题是思路有问题吗?


写回答

1回答

liuyubobobo

2021-04-04

递归该写在哪里?这个问题的正确回答是一句废话:递归该写在逻辑上该写递归的地方。


这个问题本质就好像在问:循环改写在哪里?答案是,该写在需要循环的地方。


我的建议:


  1. 现在去看 2-5,把 2-5 吃透,彻底理解这个代码的运行机制:即这个代码为什么能够做到删除链表中的节点;

  2. 不要去思考现在这个代码,这个递归为什么在这里?而是在理解递归运行机制的基础上,去想,如果昂你写这个递归,你想写在哪里?把你想象的逻辑写出来。然后去实际运行它,看看它是否是正确的?如果是错误的,去单步跟踪(像 2-5 的方式一样),一步一步去看,你的逻辑,每一步运行,变量在如何变化?和你想象的是否一样?如果不一样,哪里不一样?你的想法为什么错了?自己哪里想的哪里不对?


进步就再这个过程中。


加油!:)

2

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2638 学习 · 1091 问题

查看课程