# 1 1.5两个有序链表,合并

56 阅读1分钟
[原题链接](https://leetcode.cn/leetbook/read/illustration-of-algorithm/7fnm66/)

代码记录

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    ListNode newHead=new ListNode(-1);
    public ListNode trainningPlan(ListNode l1, ListNode l2) {
       
        if(l1==null){
            return l2;
        }
        if(l2==null){
            return l1;
        }
        //使用后递归
        if(l1.val<=l2.val){
            l1.next=trainningPlan(l1.next,l2);
            return l1;
        }else{
            l2.next=trainningPlan(l1,l2.next);
            return l2;
        }
    
    }
}
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode trainningPlan(ListNode l1, ListNode l2) {
        ListNode newHead=new ListNode(-1);
        ListNode temp=newHead;
        ListNode p=l1;
        ListNode q=l2;
        while(p!=null && q!=null){
            if(p.val<=q.val){
                ListNode n=new ListNode(p.val);
                temp.next=n;
                temp=temp.next;
                p=p.next;
            }else{
                ListNode n=new ListNode(q.val);
                temp.next=n;
                temp=temp.next;
                q=q.next;
            }
        }
        if(q==null){
            temp.next=p;
        }else{
            temp.next=q;
        }
        return newHead.next;
       
    }
}