Es sintácticamente correcta de Java. Pero no veo cómo podría estar haciendo lo que se propone.
Parece ser que el parámetro 'elemento' es lo que está buscando y el campo 'primero' en la clase actual es la raíz del árbol binario.
No está claro si la clave para el árbol binario y de búsqueda (en la clase Element) es 'activo' o 'datos'. El 'menor que' prueba utiliza 'activo', mientras que el 'mayor que' 'datos' de prueba usos. Parece probable que las dos líneas deben utilizar el mismo campo. Puede ser que uno de estos dos campos ( 'activo' o 'datos') debe no hacer referencia en este método en absoluto. Tal vez la última línea del método debe ser sólo 'return true;'?
(Sospecho que la "condición de parada" y el "código no es simétrica" respuestas anteriores son incorrectas tanto Pero podría estar equivocado:. Es difícil decir sólo con el código dado.)
Estoy de acuerdo en que es probable bucles infinitos: Sospecho que es necesario crear una segunda función de 'búsqueda' que acepta dos parámetros 'elemento' - uno que es el que hay que buscar (como el parámetro actual 'elemento') y el otro el siguiente elemento a buscar - el equivalente de corriente variable 'c' local. Haría la refactorización "Extract Method" en todo en el cuerpo del método actual de 'búsqueda', excepto la primera línea, y luego cambiar las dos llamadas recursivas a utilizar el nuevo método.
(Algo de esto es especulativo, basado en mi adivinar lo que quiere o tiene la intención, dada la información limitada. Así que podría, por supuesto, ser muy mal).