return语句会阻止递归堆栈继续吗?

时间:2015-03-13 00:02:56

标签: c++ recursion binary-search-tree

我正在编写一个二叉搜索树的search_key算法,但我遇到了问题。我正在遍历二叉搜索树,并使用基本递归技术使用有序遍历算法比较节点。但是,当条件命中(search_key == node [x] - > value)并且我返回节点时,即使在我返回节点之后它似乎仍然继续执行代码并且它影响最终输出。递归堆栈是否会继续,即使它达到返回值?有办法解决这个问题吗?

2 个答案:

答案 0 :(得分:4)

return将从当前函数返回,但当然在返回的位置,在递归情况下,是下面的级别,因此您可能需要检查结果并决定要做什么,而不是继续例如,搜索树的另一面。

答案 1 :(得分:2)

您应该发布您正在谈论的代码片段。

除此之外,如果您将递归函数调用了给定次数,则从函数返回将返回到该函数的上一次调用。 return语句不会停止执行所有先前的递归调用。