给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点,返回 null 。
辛苦帮忙看下哪里出了问题需要修改,
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
if(headA==NULL||headB==NULL){
return NULL;
}
struct ListNode* p1=headA;
struct ListNode* p2=headB;
while(p1!=NULL){
p2=headB;
while(p2!=NULL){
if(p2->next==p1->next){
return true;
}
p2=p2->next;
}
p1=p1->next;
}
return false;
}
p2=p2->next 应该在第一层循环里 你这样写的话p2一次就直接为空了
而且如果两个链表长度不相等的话也可以输出两链表的长度差 先将长的后移差的位数再进行二者比较