Para poder responder esto, necesitaríamos saber más sobre el error específico y qué lenguaje de programación está utilizando. Sin embargo, aquí hay algunas cosas a tener en cuenta:
- En un árbol binario sin hilos, si un nodo tiene un hijo izquierdo, el hijo es automáticamente el predecesor (en orden) de ese nodo; Si tiene un hijo adecuado, el hijo es el sucesor. Si cualquiera de los enlaces secundarios es NULL, debe atravesar el árbol para encontrar el sucesor. Entonces, primero verifique: ¿Es correcto su algoritmo para realizar un recorrido en orden del árbol no roscado?
- ¿Está claro en su estructura de datos si cada enlace es a un hijo o a un sucesor o predecesor? Si solo convierte una vez, puede que no importe, pero si el árbol es cambiable en el futuro, probablemente necesite distinguirlos.
- Cada vez que “visita” un nodo en el recorrido, ¿recuerda y actualiza correctamente el predecesor, ya sea que lo necesite o no?