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; } |