思路:定义两个虚拟结点指向头节点,合并后的两个链表是从小到大排序的。这道题比较简单,看代码理解就行
class Solution {
public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
ListNode newH=new ListNode(-1);//定义一个虚拟结点
ListNode temH=newH;
while(list1 != null && list2 != null){
if(list1.val < list2.val){
temH.next=list1;
list1=list1.next;
}else{
temH.next=list2;
list2=list2.next;
}
temH=temH.next;
}
if(list1 != null){//list1不为空时,说明list1剩下的元素都是大于list2的
temH.next=list1;
}
if(list2 != null){//list2不为空时,说明list2剩下的元素都是大于list1的
temH.next=list2;
}
return newH.next;
}
}