Merge two sorted lists

code:

public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
    // write your code here
    if (l1 == null && l2 != null) {
        return l2;
    } else if (l1 != null && l2 == null) {
        return l1;
    } else if (l1 == null && l2 == null) {
        return null;
    }


    ListNode dummy = new ListNode(-1);
    ListNode newHead = null;

    while (l1 != null && l2 != null) {
        if (l1.val < l2.val) {
            dummy.next = l1;
            //dummy.next.next = l2;  <- 這樣比不到下一輪,EX: l1: 1-5, l2: 9-10-11 會錯
            l1 = l1.next;
        } else if (l1.val >= l2.val) {
            dummy.next = l2;
            l2 = l2.next;
            //dummy.next.next = l1;
        }
        if (newHead == null) {
            newHead = dummy.next;
        }
        dummy = dummy.next;
    }

    if (l1 != null) {
        dummy.next = l1;
    }
    if (l2 != null) {
        dummy.next = l2;
    }

    return newHead;
}

results matching ""

    No results matching ""