21--Merge Two Sorted Lists

public class MergeTwoSortedLists {
    /*
    解法一:迭代
     */
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if (l1==null)
            return l2;
        if (l2==null)
            return l1;
        ListNode first=new ListNode(-1);
        ListNode temp=first;
        while (l1!=null&&l2!=null){
            if (l1.val<=l2.val){
                temp.next=l1;
                l1=l1.next;
            }else {
                temp.next=l2;
                l2=l2.next;
            }
            temp= temp.next;
        }
        temp.next=l2==null?l1:l2;
        return first.next;
    }
    /*
    解法二:递归
     */
    public ListNode mergeTwoLists2(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;
        }
    }
}

 

posted @ 2019-09-03 20:59  张玉昊  阅读(280)  评论(0编辑  收藏  举报