更新中……
参考链接:
https://mp.weixin.qq.com/s?__biz=MzU0MDg5OTYyOQ==&mid=2247483761&idx=1&sn=a8ff4647e85f6a01b19e1786458b4394&chksm=fb336133cc44e82549cbbe47ff6d1cd3d3d4d9690bcee1d5349cc6c6a4d8ca6c3b0e1672a8a9&scene=21#wechat_redirect
https://cloud.tencent.com/developer/article/1453737
https://blog.csdn.net/doncoder/article/details/79182542
经过一下午缓慢的阅读,我好像参悟什么是递归
写递归技巧:
1、假设现在的状态是N,想一下当前状态怎么用上一个状态表示
2、确定终止条件。
分析问题的时候只需要想这一时刻和上一时刻的关系,和问题最后的状态。
理解递归:
其实可以把递归化成一颗自顶向下的递归树,要做的就是遍历这个树。实际执行过程压栈再出栈的过程,但想的时候可以想成如何遍历,遍历的终止条件是什么,遍历的下一个节点是什么。
参考二叉树遍历。
if(node==nullptr) return 0;
traverse(node.left);
traverse(node.right);
二叉树遍历的下一个节点是他的左右孩子,相当于递归问题的下一个状态
二叉树遍历终止条件是节点为空,递归问题的终止条件是最小子问题的解决方式。