问题:
很多函数都会用到递归算法,一般都会以同样的操作一直执行到结束。但是,有时我们想要它在完成规定任务的情况下停下来,比如:在一个二叉树中求根结点到给定结点的路径(默认先序),这时就需要在找到给定结点后停止递归输出操作。
解决办法:
增加一个参数(如int &flag)的引用,该参数初始值为0,再在函数内部特定操作上增加一个判断条件(if(flag==0))。这样在找到给定结点后将flag赋值1即可。当然这不是真正的让递归停止,而是使后续的操作无法通过判断,从而阻断一些操作。
eg:
这是求二叉树根节点到给定结点路径的算法。