(21)-(Merge Two Sorted Lists)-(将两个单链表进行合并)-(注意while(l1!=null)和(l1.next!=null)的用法差异,temp是不是需要每一个申请内存)

(21)-(Merge Two Sorted Lists)-(将两个单链表进行合并)-(注意while(l1!=null)和(l1.next!=null)的用法差异,temp是不是需要每一个申请内存)

public class Solution
{
public ListNode mergeTwoLists(ListNode l1,ListNode l2)
    {
        ListNode final_ans=new ListNode(0);
        ListNode temp=final_ans;
        if(l1==null)
        {    
            return l2;
        }
        if(l2==null)
        {
            return l1;
        }
        //两个都还有元素的时候
        while(l1!=null &&l2!=null)
        {
            if(l1.val<l2.val)
            {
                //因为temp.next为null
                temp.next=new ListNode(0);
                
                temp.next.val=l1.val;
                temp=temp.next;
                l1=l1.next;
            }
            else
            {
                temp.next=new ListNode(0);
                
                temp.next.val=l2.val;
                temp=temp.next;
                l2=l2.next;
            }
        }
        while(l1!=null)
        {
            temp.next=new ListNode(0);
            
            temp.next.val=l1.val;
            temp=temp.next;
            l1=l1.next;
        }
        while(l2!=null)
        {
            temp.next=new ListNode(0);
            
            temp.next.val=l2.val;
            temp=temp.next;
            l2=l2.next;
        }
        return final_ans.next;
    }
    
}

 

posted @ 2015-07-29 21:42  爱吃萝卜干  阅读(422)  评论(0编辑  收藏  举报