Hay 2 enfoques para este problema,
- Enfoque de arriba hacia abajo
Obtenga el nodo central de la lista vinculada y conviértalo en Nodo raíz.
Ahora la lista se divide en 2 partes del lado izquierdo del nodo medio y del lado derecho del nodo medio.Haga lo mismo recursivamente para el lado izquierdo y el lado derecho.
a) encuentre el elemento central del lado izquierdo y hágalo hijo izquierdo del nodo raíz creado en el paso 1.
b) encuentre el elemento medio del lado derecho y hágalo hijo secundario del nodo raíz creado en el paso 1.- ¿Cuáles son algunos proyectos de C ++ que puedo hacer para mejorar mi conocimiento de la estructura de datos y ayudarme en entrevistas técnicas?
- Cómo hacer un seguimiento de mis preparativos para la entrevista de programación
- ¿Cómo podemos devolver los números K máximos de una matriz entera sin clasificar?
- Dada una lista de n enteros, ¿cómo puedo encontrar todas las combinaciones que suman 0?
- ¿Debería uno prepararse para programar entrevistas, o permitir que se pruebe su talento original en lugar de las cosas que memorizó para la entrevista? ¿Por qué?
El seguimiento de la pila del algoritmo anterior se verá a continuación,
Enfoque 2:
En este enfoque, comenzaremos a crear un árbol de abajo hacia arriba.
El nodo raíz del árbol se creará por fin.
- La lógica es calcular primero el tamaño de la Lista y una vez que se identifica el tamaño de la Lista Vinculada,
- Repita el mismo paso que hicimos en el primer enfoque, pero en lugar de identificar el nodo central, dividiremos la lista (longitud de la lista / 2) en 2 partes recursivamente en el lado izquierdo y el lado derecho. (Por último, posponga la creación del nodo, de modo que los nodos de hoja que son los nodos inferiores se creen primero y luego los nodos superiores)
- Al dividir la lista en 2 partes de forma recursiva, en un punto dejaremos solo un nodo y ese será el nodo hoja, crearemos un nodo Árbol por ese elemento y devolveremos un nodo a la llamada recursiva previa.
Explicación detallada con el programa: Convertir la lista vinculada ordenada a BST equilibrado