It has been a while since I built a binary tree from scratch so I decided to do it. Everything works fine but this one function. When I enter a number to search it just keeps running and allowing me to keep enter numbers.

Code:
void tree::search(int key,Node* leaf)
{
    
    if (leaf == NULL)
    {
        std::cout<<"The tree is empty\n";
    }
    else if (key==leaf->num)
    {
        std::cout<<"The number "<<leaf->num<<" was found\n";
    }
    else if(key < leaf->num)
    {
         search(key, leaf->left);
    }
    else if(key > leaf->num)
    {
         search(key, leaf->right);
    }
    else
    {
        std::cout<<"The number "<<key<<"was not found\n";
        
    }

}


void tree::search(int key)
{
    Node* current;
    
    current=root;
    
    search(key, current);
    
}