题目:判断两个链表是否相交,如果相交返回相交的节点,否则返回null。
思路:
代码:
public Node getIntersectionNode(Node headA,Node headB){
Node p1=headA;
Node p2=headB;
int lenA=0;
int lenB=0;
while(p1!=null){
lenA++;
p1=p1.next;
}
while(p2!=null){
lenB++;
p2=p2.next;
}
p1=headA;
p2=headB;
int len=lenA-lenB;
if(len<0){
p1=headB;
p2=headA;
len=lenB-lenA;
}
for(int i=0;i<len;i++){
p1=p1.next;
}
while(p1!=p2 && p1!=null && p2!=null){
p1=p1.next;
p2=p2.next;
}
if(p1==p2 && p1!=null && p2!=null){
return p1;
}
return null;
}