Categorías
Algorithms

LeetCode – Fusionar dos listas ordenadas (Java)

Fusionar dos listas enlazadas ordenadas y devolverlas como una nueva lista. La nueva lista debe hacerse empalmando los nodos de las dos primeras listas.

Solución Java

La clave para resolver el problema es definir una cabeza falsa. Luego compare los primeros elementos de cada lista. Agregue el más pequeño a la lista combinada. Finalmente, cuando uno de ellos esté vacío, simplemente añádalo a la lista combinada, ya que ya está ordenado.

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    ListNode head = new ListNode(0);
    ListNode p=head;
 
    ListNode p1=l1;
    ListNode p2=l2;
    while(p1!=null && p2!=null){
        if(p1.val < p2.val){
            p.next = p1;
            p1 = p1.next;
        }else{
            p.next = p2;
            p2 = p2.next;
        }
        p=p.next;
    }
 
    if(p1!=null){
        p.next = p1;
    }
 
    if(p2!=null){
        p.next = p2;
    }
 
    return head.next;
}

  LeetCode - Implementar cola usando pilas (Java)

Por Programación.Click

Más de 20 años programando en diferentes lenguajes de programación. Apasionado del code clean y el terminar lo que se empieza. ¿Programamos de verdad?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *