递归算法的模板要义

一、递归三大部分

1、递归的参数和返回值
2、终止条件
3、单层递归逻辑

在这里插入图片描述

递归逻辑分两层,一个是递,另一部分是归

归是由终止条件和最后的return实现的

leftValue = recursion(array,b1,c1) //左子叉

进入递归函数后,遇到终止条件,获得返回值后,将返回值给leftValue,退回本层

rightValue = recursion(array,b2,c2)//右子叉

进入递归函数后,遇到终止条件,获得返回值后,将返回值给rightValue,退回本层

最后利用函数最后的return 返回上一层递归

递 就是树分分叉实现,也就是左右节点的出现

三、递归函数的具体描述

递归的参数和返回值
这个看清楚返回值类型和参数类型就好

终止条件(只有遍历到最后的节点才会执行,负责将我们从最后一层脱离)

遍历到什么节点就结束我们的递归,不再继续往深层继续递归

if(root == NULL 或者是叶子节点)
     return  xxx

单层递归逻辑

可以先看成只有一层递归下怎么写

中节点(递归函数的核心)

也就是负责自顶向下的工作的操作
中节点的处理是我们实际要处理的逻辑,处理的地方,也就是改变的地方,最后会通过return 返回去影响中节点

后序遍历的时候就是通过return 将结果给我们的根节点

左、右节点(负责分叉处理)
我们可以想一下什么时候分叉处理

leftValue = recursion(array,b1,c1) //左子叉
rightValue = recursion(array,b2,c2)//右子叉

自底向上的操作
我们递归都是先达到最深的地方,返回就靠这个return从本层跳到上一层 回到上一层
return

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值