void insert(int key)
{
    insertRec(key, root);
}
void insertRec(int key, Node *current)
{
    if(current==NULL)
        current = new Node(key);
    else if(key <= current->value)
        insertRec(key, current->leftChild);
    else
        insertRec(key, current->rightChild);
}
How come this doesn't work?
In the insert function, key value and root of the tree are passed to insertRec. If the node is null, create a new node and set it to the key value. Else, either recursively go left or right until the node hits a null spot and insert a new node there.
 
     
    