/**
* 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 list1, ListNode list2) {
if(list1==null){
return list2;
}
if(list2==null){
return list1;
}
ListNode mergeHead=new ListNode(0);//定义新链表的头节点
//mergeHead= list1.val<list2.val?list1:list2;
//头节点不要,直接返回头节点.next,不然会超出时间限制
ListNode cur1=list1;
ListNode cur2=list2;
ListNode mergeCur=mergeHead;
while(cur1!=null&&cur2!=null){
if(cur1.val<=cur2.val){
mergeCur.next=cur1;
cur1=cur1.next;
}else{
mergeCur.next=cur2;
cur2=cur2.next;
}
mergeCur=mergeCur.next;
}
mergeCur.next= cur1==null?cur2:cur1;
return mergeHead.next;
}
}
还有一种递归写法暂时没学