题目描述
将两个有序的链表合并为一个新链表,要求新的链表是通过拼接两个链表的节点来生成的。
示例1
输入{1},{}
返回值{1}
示例2
输入{1},{1}
返回值{1,1}
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* }
*/
public class Solution {
/**
*
* @param l1 ListNode类
* @param l2 ListNode类
* @return ListNode类
*/
public ListNode mergeTwoLists (ListNode l1, ListNode l2) {
//思想 用第三个链表来 归并 这两个链表
//若l1为空 则直接追加l2 若l2为空则直接追加l1若都为空直接返回
//比较两个链表的值的大小,最后若一个链表为null ,则将另一个链表追加
if(l1==null) return l2;
if(l2==null) return l1;
ListNode L3=new ListNode(0);
ListNode head=L3;
while(l1!=null &&l2!=null){
if(l1.val<=l2.val){
L3.next=l1;
l1=l1.next;
}else if(l2.val<=l1.val){
L3.next=l2;
l2=l2.next;
}
L3=L3.next;
}
L3.next=(l1==null)?l2:l1;
return head.next;
}
}