public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode p1=l1;
ListNode p2=l2;
//定义新链表的头节点
ListNode l3=new ListNode(0);
ListNode p3=l3;
//当p1和p2都不为空时,分别取下两个节点进行比较,将较小的那个链入新节点,然后将对应的p1或者p2指向下一个,一直到其中某一个链表为空
while(p1!=null && p2!=null){
if(p1.val<p2.val){
p3.next=p1;
p3=p3.next;
p1=p1.next;
}
else{
p3.next=p2;
p3=p3.next;
p2=p2.next;
}
}
//如果剩下p1,p2为空,则将p1直接放入新链表即可
if(p1!=null){
p3.next=p1;
}
//如果剩下p2,p1为空,则将p2直接放入新链表即可
if(p2!=null){
p3.next=p2;
}
return l3.next;
}