剑指 Offer 25. 合并两个排序的链表

package leetcode;

public class offer_25 {
    
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        //创建一个新表头
        ListNode node=new ListNode();
        ListNode temp=node;
        if(l1==null&&l2==null) {
            return null;
        }
        while(l1!=null||l2!=null) {
            //l1.val小于l2.val就加入l1
            if(l1!=null&&l2!=null&&l1.val<=l2.val) {
                temp.next=l1;
                while(l1!=null&&l2!=null&&l1.val<=l2.val) {                    
                    temp=temp.next;
                    l1=l1.next;
                }
            }
            //l1出现空链表,直接将l2剩余链表直接加入
            if(l1==null) {
                temp.next=l2;
                break;
            }
            //l2.val小于l1.val就加入l2
            if(l1!=null&&l2!=null&&l1.val>l2.val) {
                temp.next=l2;
                while(l1!=null&&l2!=null&&l1.val>l2.val) {                    
                    temp=temp.next;
                    l2=l2.next;
                }
            }
            //l2出现空链表,直接将l1剩余链表直接加入
            if(l2==null) {
                temp.next=l1;
                break;
            }
        }
        return node.next;
    }
}

 

posted on 2022-03-13 17:33  一仟零一夜丶  阅读(18)  评论(0)    收藏  举报