递归语句位置在函数中的位置
来源:2-4 链表与递归
努力做学霸123
2021-04-04 07:58:55

在写递归的时候,不知道该把递归语句写在函数的哪个位置,有的时候递归语句在整个函数的末尾,有的时候就像这道题,递归语句在函数的中间,递归语句之后还有其他语句(这道题里面还包括了其他的return语句)。递归语句到底是该写在哪里,这个问题老是弄不懂,然后就写不出来。请问老师一下,我这种问题是思路有问题吗?
1回答
递归该写在哪里?这个问题的正确回答是一句废话:递归该写在逻辑上该写递归的地方。
这个问题本质就好像在问:循环改写在哪里?答案是,该写在需要循环的地方。
我的建议:
现在去看 2-5,把 2-5 吃透,彻底理解这个代码的运行机制:即这个代码为什么能够做到删除链表中的节点;
不要去思考现在这个代码,这个递归为什么在这里?而是在理解递归运行机制的基础上,去想,如果昂你写这个递归,你想写在哪里?把你想象的逻辑写出来。然后去实际运行它,看看它是否是正确的?如果是错误的,去单步跟踪(像 2-5 的方式一样),一步一步去看,你的逻辑,每一步运行,变量在如何变化?和你想象的是否一样?如果不一样,哪里不一样?你的想法为什么错了?自己哪里想的哪里不对?
进步就再这个过程中。
加油!:)
相似问题