class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
public ListNode Merge(ListNode list1,ListNode list2) {
if(list1 == null) {
return list2;
}
if(list2 == null) {
return list1;
}
ListNode p=list1,q=list2;
if(p.val>q.val){
p = list2 ; //p small
q = list1 ;
}
ListNode r1= p.next,r2 = q.next ;
while(q!=null){
if (r1.val >= q.val){
r2 = q.next ;
q.next=r1 ;
p.next=q ;
p = r1 ;
r1 = p.next ;
q = r2 ;
}else {
p = r1 ;
r1 = r1.next ;
if (r1 == null){
p.next = q ;
}
}
}
return list1;
}
}