剑指offer ----从树的算法学习递归

递归几个特点:
自己调用自己
一层层的的解刨,从外面往里面走,一点点的变小,最后得到了结果。

https://www.zhihu.com/question/31412436/answer/683820765
参考自知乎大神,在这里膜拜下,下面的记录是为了个人学习而已。

如何写递归:
从上面我们可以知道写递归的几个要点:
第一个是明确函数本身是做什么的?递归函数本身最终会输出一个终极结果,或者在过程中会并保存一个终极结果。也就是一层层往下刨开的过程中,到了重点我们就有了结果。这个很重要,都不知道函数最终会给什么?那我们写这个有什么意义呢?

第二个明确函数的结束条件:
递归是从外面往里面走的,那什么时候是终点呢?这个结束条件非常重要,写好了我们可以刨开到终点,写不好我们会一直往里面走,就像一个物体,如果没有规定切开后最小能有多小,那么其实是可以到原子的大小呀哈哈哈哈。但是如果规定最小是到这里了,那么就有了结束的条件。大神文章就用了一个代码实例。青蛙跳呀跳来。

第三个找出函数的等价关系式:
其实刚刚不管是切开,还是一点点变小,这个操作的过程就是等价关系式了。写了这个才能算是真正的自己调用自己,真正的往了里面走,而且这个过程我们也会保存一些结果。比如下面树的算法。

剑指offer中的链表:
反转单链表。例如链表为:1->2->3->4。反转后为 4->3->2->1
1.目标是啥:最终返回反链表的头,这里是我们最终要给的东西
2.终止条件是啥:上面的例子就是到了4对吧,有啥特点。当链

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值