首页 > 代码库 > 21. Merge Two Sorted Lists

21. Merge Two Sorted Lists

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.

 

Recursive:

  public ListNode MergeTwoLists(ListNode l1, ListNode l2) {        if(l1 == null) return l2;        if(l2 == null) return l1;        if(l1.val<l2.val)         {            l1.next =  MergeTwoLists(l1.next,l2);            return l1;        }        else        {            l2.next = MergeTwoLists(l1,l2.next);            return l2;        }    }

 

Iteration:

public ListNode MergeTwoLists(ListNode l1, ListNode l2) {       if (l1 == null) return l2;            if (l2 == null) return l1;                       var sentinel = new ListNode(-1);            var dummy = sentinel;            while(l1 != null && l2 != null)            {                if (l1.val < l2.val)                {                    sentinel.next = l1;                    l1 = l1.next;                }                else                {                    sentinel.next = l2;                    l2 = l2.next;                }                sentinel = sentinel.next;            }            if (l1 != null) sentinel.next = l1;            else sentinel.next = l2;            return dummy.next;    }

 

21. Merge Two Sorted Lists