public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
//新建一个ListNode用来存放a链表和b链表遍历
Set<ListNode> visited = new HashSet<ListNode>();
//先遍历A链表,不为空的情况下把所有的节点都存进来
ListNode temp = headA;
while(temp != null){
visited.add(temp);
temp = temp.next;
}
//再遍历B链表,不为空的情况下,检查B的每个节点temp是否已经存在
temp = headB;
while(temp != null){
if(visited.contains(temp)){
//存在返回这个节点
return temp;
}
//不存在继续遍历
temp = temp.next;
}
return null;
}
}
10-07
344
09-30
1362
08-30
424
10-06
393