C++ c++;在树中搜索节点

C++ c++;在树中搜索节点,c++,recursion,tree,target,C++,Recursion,Tree,Target,在我的程序中,当给定一个目标时,我递归地试图在树中找到一个节点,但我无法让它工作 Stree::Node * Stree::find_node(Node* cur, string target) { Node *tmp = cur;; if(cur == NULL || tmp == NULL) return NULL; if(cur->m_city == target || tmp->m_city == target)

在我的程序中,当给定一个目标时,我递归地试图在树中找到一个节点,但我无法让它工作

    Stree::Node * Stree::find_node(Node* cur, string target)
{
    Node *tmp = cur;;
    if(cur == NULL || tmp == NULL)
        return NULL;
    if(cur->m_city == target || tmp->m_city == target)
        return cur;
    if(find_node(tmp->m_left, target))
    {
        return tmp;
    }
    else return find_node(cur->m_right, target);
问题在于:

if(find_node(tmp->m_left, target))
{
    return tmp;
}
您应该返回
find_node
的结果:

tmp = find_node(cur->m_left, target);
if (tmp) return tmp;

出了什么问题?你介意给我们一个最小的完整的例子吗?如果你要进行线性搜索,为什么要使用树呢?树的目的通常是进行O(logn)搜索,但你没有这样做。不要给吸血鬼提供帮助。