1382. Balance de un árbol de búsqueda binaria

paquete LeetCode_1382 

importación kotlin.collections.ArrayList 

/ ** 
 * 1382. Balance de un árbol binario de búsqueda 
 * https://leetcode.com/problems/balance-a-binary-search-tree/description/ 
 * 
 * Ejemplo: 
 * var ti = NodoArbol (5) 
 * var v = ti.`val` 
 * Definición de un nodo de árbol binario. 
 * 
 * + 1.BST finde => array ordenado 
 * complejidad del tiempo es O (n) 
 * espacio complejidad es O (n) 
 * 
 * 2.Cover ordenadas matriz para BST (árbol de búsqueda binaria) 
 * tiempo de complejidad es O (n) 
 * espacio complejidad es O (log n) 
 * / 

clase TreeNode (var `val`: Int) { 
    var restante: NodoArbol? = Nula 
    derecho var: NodoArbol ? = Nulo 
} 

clase de soluciones { 
    divertido balanceBST (root_: NodoArbol ?): NodoArbol? {
         Si (raíz _ == nula ) {
             retorno  nulo 
        } 
        lista val = ArrayList <int> ()
         // iteración 
        / * val = Pila pila <TreeNode> () 
        de la raíz var = root_ 
        tiempo (stack.isNotEmpty () || raíz! = null) { 
            si (raíz! = null) { 
                stack.push (root) 
                root = root.left 
            } else {
                root = stack.pop () 
                list.add (root.`val`) 
                root = root.right 
            } 
        } * / 
        // recursividad
         // izquierda-> Raíz> derecho 
        a finde (lista, root_)
         de retorno coverHelp (lista, 0 , list.size - 1 ) 
    } 

    privada divertido finde (lista: ArrayList <int>, raíz: NodoArbol? ) {
         si (raíz == nula ) {
             retorno 
        } 
        finde (lista, root.left) 
        list.add (root.` val`) 
        finde (lista, root.right) 
    } 

    privadadiversión coverHelp (lista: ArrayList <int>, izquierda: Int, derecha: Int): NodoArbol? {
         Si (LEFT> derecha) {
             retorno  nulo 
        } 
        mediados val = (izquierdo + derecho) / 2 
        val nodo = TreeNode (lista [MID]) 
        node.left = coverHelp (lista, la izquierda, mid - 1 ) 
        node.right = coverHelp (lista, mitad + 1 , derecha)
         de retorno nodo 
    } 
}

 

Supongo que te gusta

Origin www.cnblogs.com/johnnyzhao/p/12503394.html
Recomendado
Clasificación