如何让采用递归的函数在自己想要的地方“停止”?

      问题:

      很多函数都会用到递归算法,一般都会以同样的操作一直执行到结束。但是,有时我们想要它在完成规定任务的情况下停下来,比如:在一个二叉树中求根结点到给定结点的路径(默认先序),这时就需要在找到给定结点后停止递归输出操作。

      解决办法:

      增加一个参数(如int &flag)的引用,该参数初始值为0,再在函数内部特定操作上增加一个判断条件(if(flag==0))。这样在找到给定结点后将flag赋值1即可。当然这不是真正的让递归停止,而是使后续的操作无法通过判断,从而阻断一些操作。

      eg:

      

      这是求二叉树根节点到给定结点路径的算法。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值