public static void createCut(Node headA,Node headB){
headA.next=headB.next.next;
}
//输入两个链表,找到链表相交的节点
public static Node getInterSectionNode(Node headA,Node headB){
Node ps=headA;//默认指向长的单链表
Node pl=headB;//默认指向指向短的单链表
int lenA=0;
int lenB=0;
while(ps!=null){
lenA++;
ps=ps.next;
}
while(pl!=null){
lenB++;
pl=pl.next;
}
int len=lenA-lenB;
if(len<0){
ps=headB;
pl=headA;
len=lenB-lenA;
}
for(int i=0;i<len;i++){
ps=ps.next;
}
//pl!=ps
while(ps!=pl&&ps!=null&&pl!=null){
ps=ps.next;
pl=pl.next;
}
//退出循环,pl和ps相等了
if(ps!=null&&ps==pl){
return ps;
}
return null;
}
找到两个链表相交的节点
最新推荐文章于 2025-03-23 20:19:03 发布