两个链表已经有序 即从小到大排序
解题思路:依次比较每次链表的头结点,然后在最小处前进一位
//这样只会递归到最后一个 递归到最后一个也可以 因为每次都会返回最小的一个
//每次返回的都是 一个链表结点 所以不必要重写new一个
//递归 每次返回的都是
public LinkNode mergenumber(LinkNode l1,LinkNode l2){
if(l1==null) return l2;
if(l2==null) return l1;
if(l1.val<=l2.val){
l1.next=mergernumber(l1.next,l2);
return l1;
}else{
l2.next=mergernumber(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 mergeTwoLists(ListNode l1, ListNode l2) {
if(l1==null) return l2;
if(l2==null) return l1;
//这样只会递归到最后一个 递归到最后一个也可以 因为每次都会返回最小的一个
//每次返回的都是 一个链表结点 所以不必要重写new一个
//递归 每次返回的都是
if(l1.val<=l2.val){
l1.next=mergeTwoLists(l1.next,l2);
return l1;
}else{
l2.next=mergeTwoLists(l1,l2.next);
return l2;
}
//当递归到最后一个 4 4 时, l2的4 将作为l
/*if(l1==null){
return l2;
}else if(l2==null){
return l1;
}else if(l1.val<=l2.val){
l1.next=mergeTwoLists(l1.next,l2);
return l1;
}else{
l2.next=mergeTwoLists(l1,l2.next);
return l2;
}*/
}
}