c++ - 从递归函数返回值

标签 c++ recursion tree

另一个递归问题,抱歉我无法解决这个问题。我试图返回一个节点指针,其 id 与提供的 id 匹配。我想我正在正确地遍历树。有什么我在这里出错的想法吗?

//h
Node* findNode(const QString &id, Node *node=NULL)

//cpp
Node* Tree::findNode(const QString &id, Node *node)
{
    if (node == NULL)
        node = root;

    for(int i = 0, end = node ? node->childCount() : -1; i < end ; i++)
    {
        QString nodeId = node->child(i)->id();

        if (nodeId == id)
        {
            return node;
        }
        else
        {
            return findNode(id, node->child(i));
        }
    }
}

感谢收看

最佳答案

else 中,只有在找到某些内容时才返回递归调用的值。否则,您将永远无法通过 i=0

关于c++ - 从递归函数返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17896089/

相关文章:

python - 递归的中间结果

angular - 递归保存树形并在完成时发出事件

c++ - 错误 C2679 - C++ - 未找到运算符

c++ - 为什么basic_string_view不限于字符类型?

java - 生成总和为 N 的所有数字排列

r - 在 R 中结合向量化和递归?

C++ 新的内存分配碎片

c++ - 无法访问私有(private)成员 - 模板和 std::unique_ptr

python - 为什么我的 matplotlib 不绘图?

javascript - d3 力有向图向下力模拟