Vamos a escribir los algoritmos de IT, (6); ordenar la lista

 

 

 

pública  estática  void principales (args String []) { 
        NodoLista l1 = nuevo NodoLista (1 ); 
        NodoLista l2 = nuevo NodoLista (2 ); 
        NodoLista L3 = nuevo NodoLista (3 ); 
        NodoLista l4 = nuevo NodoLista (4 ); 
        NodoLista l5 = nuevo NodoLista (5 ); 
        NodoLista L6 = nuevo NodoLista (6 );
        / * 
         * L1.next = l4; l4.next = L6; l6.next = L2; 
         * / 
        L2.next =L1; 
        l3.next = L5; 
        
        TwoNumbers NodoLista = nuevo Main4 () sortList (L2).;
        mientras que (twoNumbers =! nula ) { 
            System.out.print (twoNumbers.val +"" ); 
            twoNumbers = twoNumbers.next; 
        } 
    } 
    
    //递归做归并排序
    pública NodoLista sortList (cabeza NodoLista) {
         si (la cabeza == nula || head.next == nula ) {
             retorno de la cabeza; 
        } 
        NodoLista primera = cabeza; 
        mediados NodoLista=   GetMid (cabeza); 
        NodoLista segunda = mid.next; 
        mid.next = nulo ; 
        primero = sortList (primera); 
        segundos = sortList (segundos); 
        retorno de combinación (primero, segundo); 
    } 
    //获取链表中节点
    privado NodoLista getMid (nodo NodoLista) { 
        NodoLista lento = nodo; 
        NodoLista rápido = node.next;
        mientras que (= rápido! nula && fast.next =! nula ) { 
            lentos = slow.next; 
            rápidas =fast.next.next; 
        } 
        Devolver lenta; 
    } 
    
    //合并两个有序链表
    privada de combinación NodoLista (NodoLista primera, segunda NodoLista) {
         si (== primera nula ) {
             retorno segundos; 
        } 
        Si (segunda == nula ) {
             volver primero; 
        } 
        Raíz NodoLista = nueva NodoLista (0 ); 
        NodoLista tmp = raíz;
        mientras que (primero! = nula && segundo! = nula ) {
             si(first.val < second.val) { 
            tmp.next = primero; 
            tmp = tmp.next; 
            primero = first.next; 
            
            } Más { 
            tmp.next = segundos; 
            tmp = tmp.next; 
            segundos = second.next; 
            } 
        } 
        
        Si (primera == nula ) { 
            tmp.next = segundos; 
        } 
        Si (segunda == nula ) { 
            tmp.next =primero; 
        } 
        Devolver root.next; 
    }

 

Supongo que te gusta

Origin www.cnblogs.com/leaveast/p/12524405.html
Recomendado
Clasificación