相交链表(leetcode第160题)

给你两个单链表的头节点 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一次就直接为空了

而且如果两个链表长度不相等的话也可以输出两链表的长度差 先将长的后移差的位数再进行二者比较