Pocas cosas creo que se pueden hacer aquí:
- cuando la raíz es nula, simplemente agregue un nuevo nodo y regrese para que no necesite otro bloque.
- ¿Por qué usar 2 punteros diferentes?
- parent = current se ha hecho en el bloque if y else, que parece un código duplicado
Traté de poner mis cambios aquí … Avísame si satisface tus necesidades …
inserción vacía pública estática (clave int) { Nodo newNode = nuevo nodo (clave); if (raíz == nulo) { root = newNode; regreso; } Nodo actual = raíz; mientras (cierto) { if (current.key <clave) { if (current.right == nulo) { current.right = newNode; regreso; } current = current.right; } más { if (current.left == null) { current.left = newNode; regreso; } current = current.left; } } }
- ¿Qué debo hacer para mejorar el pensamiento algorítmico, especialmente para la programación dinámica?
- ¿Qué algoritmo se usa para detectar "No más interruptores posibles, barajar" en la saga Candy Crush?
- ¿Qué problemas algorítmicos abiertos mejorarían más la vida humana cuando se resuelvan?
- Cómo demostrar que en cada árbol de búsqueda binaria n-nodo hay exactamente n-1 rotaciones posibles
- ¿Qué algoritmos se utilizan para construir árboles filogenéticos?