'How to insert a node in a BST without using CC_TREE**?

So I have a piece of code, where I have to add a node to a BST. My struct is the following:

typedef struct _CC_TREE {
    // Members
    int Value;
    struct _CC_TREE* LChild;
    struct _CC_TREE* RChild;
} CC_TREE;

The insert function in the header file looks like this:

int TreeInsert(CC_TREE *Tree, int Value);

where I have to return the status of the insert.

I tried doing it with another function and add it to the Tree

CC_TREE* InsertNewNode(CC_TREE* Tree, int Value)
{
    if (NULL == Tree)
    {
        Tree = (CC_TREE*)malloc(sizeof(CC_TREE));
        Tree->LChild = NULL;
        Tree->RChild = NULL;
        Tree->Value = Value;
        return Tree;
    }
    if (Value <= Tree->Value)
    {
        Tree->LChild = InsertNewNode(Tree->LChild, Value);
    }
    else if (Value >= Tree->Value)
    {
        Tree->RChild = InsertNewNode(Tree->RChild, Value);
    }
    return Tree;
}

int TreeInsert(CC_TREE *Tree, int Value)
{
    CC_UNREFERENCED_PARAMETER(Tree);
    CC_UNREFERENCED_PARAMETER(Value);

    Tree = InsertNewNode(Tree, Value);
    return 0;
}

I try and construct the tree in my main function:

int retVal = -1;
CC_TREE* usedTree = NULL;

retVal = TreeCreate(&usedTree);
if (0 != retVal)
{
    printf("TreeCreate failed!\n");
    goto cleanup;
}

retVal = TreeInsert(usedTree, 20);
if (0 != retVal)
{
    printf("TreeInsert failed!\n");
}

but for some reason the usedTree remains null. I know that I should use CC_TREE** Tree in the insert function, but I am not allowed to.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source