合并两个排序链表

题目:输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则。

思路:扫一遍维护递增,最后再添加原链表可能未被添加的部分

 public ListNode Merge(ListNode list1,ListNode list2) {
        if(list1==null&&list2==null) return null;
        if(list1==null&&list2!=null) return list2;
        if(list1!=null&&list2==null) return list1;
         ListNode res1=new ListNode(-1);
           ListNode res=res1;
       //要有两个指针指向创建的头结点,一个指针会走到末尾,返回的时候已经不能用了
        while(list1!=null&&list2!=null){
            if(list1.val<=list2.val){
                res.next=list1;
                res=res.next;
                list1=list1.next;
            }else{
                res.next=list2;
                res=res.next;
                list2=list2.next;
            }
        }
         while(list1 != null) {
            res.next = list1;
           res = res.next;
            list1 = list1.next;
        }
        while(list2 != null) {
            res.next = list2;
            res = res.next;
            list2 = list2.next;
        }
        return res1.next;
    }
原文地址:https://www.cnblogs.com/team42/p/6681902.html