学了好多年编程,虽然之前不怎么理解,但是也能写出递归,总感觉差点什么。今天偶然看到一篇大佬的博客,突然茅塞顿开,对递归的理解彻底通透了。
附上大佬的博客地址:https://lyl0724.github.io/2020/01/25/1/
理解递归三部曲:
- 找整个递归的终止条件:递归应该在什么时候结束?
- 明确递归函数的作用,这里千万别做过多的思考。只要考虑三个问题
第一:这个函数是干嘛用的?
第二:这个函数应该传入什么参数?
第三:这个函数的返回值是什么? - 本级递归应该做什么:在这一级递归中,应该完成什么任务?
当你明确了以上三点你的递归就顿悟了!!!!
附上几个例题:(一会把题解写了,最好自己先写下这三部曲)
https://leetcode-cn.com/problems/swap-nodes-in-pairs/comments/
https://leetcode-cn.com/problems/balanced-binary-tree/comments/
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/
https://leetcode-cn.com/problems/reverse-linked-list/submissions/
好久没回来看了(才实习完累死
你推荐的这个文章写的非常好
谢谢
牛逼,我到现在都没学会递归,都是凭感觉写的。
加油加油
还要注意恢复状态
是的是的,注意回溯