i need to find the node in this BST tree which is the least bigger the the other nodes.

i know i need to use preorder traversal here.
how to solve it??
Code:
node * nextNode(node  * tree, int number)
{
	int left,right;
	node* temp
   if (!tree)
   {
    return NULL;
   }
   if (tree->left) 
   {
	   temp=nextNode(tree->left,number);
       if (number<temp->value)
	   {
		   left=temp->value;
	   }
   }

   if (tree->value>number)
   {
     return tree;
   }
  else
  return NULL;
   
   if (tree->right) 
   {
	   temp=nextNode(tree->right,number);
       if (number<temp->value)
	   {
		   right=temp->value;
	   }
   }


}