0021 - Merge Two Sorted Lists

0021 - Merge Two Sorted Lists

Merge two sorted linked lists and return it as a sorted list. The list should be made by splicing together the nodes of the first two lists.

Examples

Input: l1 = [1,2,4], l2 = [1,3,4] Output: [1,1,2,3,4,4]

Input: l1 = [], l2 = [] Output: []

Input: l1 = [], l2 = [0] Output: [0]

Constraints

The number of nodes in both lists is in the range [0, 50]. -100 <= Node.val <= 100 Both l1 and l2 are sorted in non-decreasing order.

Java Solution

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null)return l2;
        if(l2 == null)return l1;

        ListNode head = new ListNode(0);
        ListNode pointer = head;

        while(l1 != null && l2 != null) {
            if(l1.val < l2.val) {
                pointer.next = l1;
                l1 = l1.next;
            } else {
                pointer.next = l2;
                l2 = l2.next;
            }
            pointer = pointer.next;
        }
        if(l1 != null) {
            pointer.next = l1;
        }
        if(l2 != null) {
            pointer.next = l2;
        }

        return head.next;
    }
}

Last updated