/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
//首先使用暴力解法 记住 不是值相等 是地址相等
struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {
//第一步 创建遍历指针
struct ListNode *listA=headA,*listB=headB;
//第二步 遍历A链表 分别判断每个结点是不是在B链表内
while(listA!=NULL){
listB=headB;
while(listB!=NULL){
if(listA==listB){
//若相等
return listA;
}else{
//若不等
listB=listB->next;
}
}
listA=listA->next;
}
//此时循环结束,意思是A链表的结点在B链表里都找不到
return NULL;
}
进阶可以使用哈希表和双指针法