most likely in any of the higher up caves, or just train a ghastly to level 25, lazyass.
Chat with our AI personalities
you can't find haunter in Black
you have to trade
The only way is to trade it. You'll need to trade for a Haunter or Gengar if you want to own one.
You can't catch a Haunter in Emerald. You can trade for one, you can find a Duskull/Dusclops at MT Pyre, but you can't straight out find a wild Haunter.
There is no NPC who you can trade a Haunter to for a Gengar in Pokemon Crystal. To get Gengar you will need to trade with another player or a copy of Pokemon Gold, Silver or Crystal.