#include <stdio.h>
#include <stdlib.h>
struct Node {
int data;
struct Node *next;
};
int compareLists(struct Node *head1, struct Node *head2) {
struct Node *ptr1 = head1, *ptr2 = head2;
int len1 = 0, len2 = 0;
// 计算head1链表长度
while (ptr1 != NULL) {
len1++;
ptr1 = ptr1->next;
}
// 计算head2链表长度
while (ptr2 != NULL) {
len2++;
ptr2 = ptr2->next;
}
ptr1 = head1;
ptr2 = head2;
// 寻找共享节点
while (ptr1 != NULL && ptr2 != NULL && ptr1 != ptr2) {
ptr1 = ptr1->next;
ptr2 = ptr2->next;
}
// 如果没有共享节点
if (ptr1 != ptr2) {
return -2;
}
if (len1 > len2) {
return 1;
} else if (len1 < len2) {
return -1;
} else {
return 0;
}
}