class Solution {
public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
ListNode pre1 = new ListNode(-1);
ListNode pre = pre1;
while(l1 != null && l2 != null){
if(l1.val < l2.val){
pre.next = l1;
l1 = l1.next;
}else{
pre.next = l2;
l2 = l2.next;
}
pre = pre.next;
}
if(l1 != null){
pre.next = l1;
}
if(l2 != null){
pre.next = l2;
}
return pre1.next;
}
}
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
ListNode cur1 = headA;
ListNode cur2 = headB;
int num1 = 0;
int num2 = 0;
while(cur1 != null){
cur1 = cur1.next;
num1++;
}
while(cur2 != null){
cur2 = cur2.next;
num2++;
}
cur1 = headA;
cur2 = headB;
if(num1 > num2){
int res = num1 - num2;
while(res >0){
cur1 = cur1.next;
res--;
}
}else if(num2 > num1){
int res = num2 - num1;
while(res >0){
cur2 = cur2.next;
res--;
}
}
while(cur1 != cur2 && cur1 != null && cur2 != null){
cur1 = cur1.next;
cur2 = cur2.next;
}
return cur2;
}
}