21. Merge Two Sorted Lists
Easy
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example:
Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
package leetcode.easy; /** * Definition for singly-linked list. public class ListNode { int val; ListNode * next; ListNode(int x) { val = x; } } */ class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } public class MergeTwoSortedLists { @org.junit.Test public void test() { ListNode l11 = new ListNode(1); ListNode l12 = new ListNode(2); ListNode l13 = new ListNode(4); l11.next = l12; l12.next = l13; l13.next = null; print(l11); ListNode l21 = new ListNode(1); ListNode l22 = new ListNode(3); ListNode l23 = new ListNode(4); l21.next = l22; l22.next = l23; print(l21); ListNode l = mergeTwoLists(l11, l21); print(l); } public static void print(ListNode l) { while (l != null) { System.out.print(l.val); if (l.next != null) { System.out.print("->"); } l = l.next; } System.out.println(); } public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode head = new ListNode(0); ListNode p = head; while (l1 != null && l2 != null) { if (l1.val <= l2.val) { p.next = l1; l1 = l1.next; } else { p.next = l2; l2 = l2.next; } p = p.next; } if (l1 != null) { p.next = l1; } if (l2 != null) { p.next = l2; } return head.next; } }