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

大神的代码
class Solution {
    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;
        }
    }
}

 




自己写的很笨的代码
class Solution {
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        ListNode n1=l1,n2=l2;
        ListNode ln=null;
        ListNode ans=null;
        while(n1!=null&&n2!=null){
            if(n1.val<n2.val){
                if(ln==null){
                    ln=n1; 
                    ans=ln;
                }
                else{
                    ln.next=n1;
                    ln=ln.next;
                } 
                n1=n1.next;      
            }
            else{
                if(ln==null){
                    ln=n2;
                    ans=ln;
                }
                else{
                    ln.next=n2;
                    ln=ln.next;
                }
                n2=n2.next;
            }
        }
        while(n1!=null){
            if(ln==null){
                ln=n1;
                ans=ln;
            }
            else{
                ln.next=n1;
                ln=ln.next;
            }
            n1=n1.next;
        }
        while(n2!=null){
            if(ln==null){
                ln=n2;
                ans=ln;
            }
            else{
                ln.next=n2;
                ln=ln.next;
            }
            n2=n2.next;
        } 
        
        return ans;
    }
}