C二叉树搜索

C binary tree search

我正在尝试在二叉树中查找节点,但是函数 return 什么都没有,NULL! 顺便说一句,在printf中,在

if ((cond = strcmp(head->word, word_to_search)) == 0)

结果是对的,只是没有return值,可能我递归弄错了,我不知道。顺便说一句,如果我将 last return NULL 包装在 else 中,它会 return 有效指针,但它会导致警告...

struct count_tree *
binaryt_search(struct count_tree *head, char *word_to_search)
{
    int cond = 0;
    if (head != NULL) {
        if ((cond = strcmp(head->word, word_to_search)) == 0) {
            printf("Found %s %d\n", head->word, head->count);
            return head;
        }
        else if (cond < 0) {
            binaryt_search(head->left, word_to_search);
        }
        else {
            binaryt_search(head->right, word_to_search);
        }
    }
    return NULL;
}

您需要 return 调用 binaryt_search() 的结果。 所以,

binaryt_search(head->left, word_to_search);

变成

return binaryt_search(head->left, word_to_search);

binaryt_search(head->right, word_to_search);

变成

return binaryt_search(head->right, word_to_search);