我觉得思路挺对的,不知道哪里出错了,一直显示编译出错

#include <stdio.h>
#include <stdlib.h>
struct ListNode {
int val;
struct ListNode* next;
};
struct ListNode* getIntersectionNode(struct ListNode* headA, struct ListNode* headB)
{
struct ListNode* head1;
struct ListNode* head2;
head1 = headA;
head2 = headB;
int flag = 0;
while (head1 != NULL && head2 != NULL && flag == 0)
{
if (head1->val != head2->val)
{
head1 = head1->next;
head2 = head2->next;
}
else
{
flag = 1;
}
}
if (head1 == NULL||head2==NULL)
{
return NULL;
}
if (flag)
{
return head1;
}
}