java 递归 尾递归_java – 头和尾递归之间的差异

在头递归中,递归调用发生时,会在函数中的其他处理之前进行(认为它发生在函数的顶部或头部).

在尾递归中,恰恰相反 – 处理在递归调用之前发生.在两种递归样式之间进行选择可能是任意的,但选择可能会有所不同.

在路径开始处使用单个递归调用的路径的函数使用所谓的头递归.以前展览的阶乘函数使用头部递归.它确定递归需要的第一件事就是用递减的参数来调用自身.

在路径末尾单个递归调用的函数是使用尾递归.

Refer this article

示例递归:

public void tail(int n) public void head(int n)

{ {

if(n == 1) if(n == 0)

return; return;

else else

System.out.println(n); head(n-1);

tail(n-1); System.out.println(n);

} }

如果在方法结束时发生递归调用,则称为尾递归.尾递归与循环类似.该方法在跳转到下一个递归调用之前执行所有语句.

如果递归调用发生在方法的开头,则称为头递归.该方法在跳转到下一个递归调用之前保存状态.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值