21.合并两个有序链表
/**
* 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) {
//返回最后结果
ListNode res = new ListNode(0);
//用来记录排序值
ListNode temp = res;
while(list1!=null&&list2!=null){
if(list1.val<=list2.val){//若List1小,则将list1添加到新链表中
temp.next=list1;
list1=list1.next;
}else{//反之,则将list2加入到新链表中
temp.next = list2;
list2=list2.next;
}
temp=temp.next;
}
//将剩余结点加入到新链表中
if(list1!=null){
temp.next=list1;
}
if(list2!=null){
temp.next=list2;
}
//从新链表的下一个结点返回
return res.next;
}
}