将两个单调递增的链表合并成一个单调不减的链表。
思路:两个链表各给一个指针,比较大小,给一个新链表,小的就放到新链表,同时指针右移。如果有一个链表到头之后,就把另一个链表剩下的部分直接移过去。
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
ListNode head1 = list1;
ListNode head2 = list2;
ListNode newhead = new ListNode(-1);
ListNode xin = newhead;
while(head1!=null&&head2!=null){
if(head1.val<=head2.val){
xin.next = head1;
head1 = head1.next;
}else{
xin.next = head2;
head2 = head2.next;
}
xin = xin.next;
}
if(head1==null){
xin.next = head2;
}else{
xin.next = head1;
}
return newhead.next;
}
}