However, I want to add an internal helper function to search the tree based on internal semantics and return a ...something?
Just return a raw pointer. Raw pointers are the canonical representation of a non-owning nullable reference, which is exactly what you want.
For reassurance, see the C++ Core Guidelines on this subject.