思路
先把a链表都放进 一个hashSet集合
再遍历B链表,逐个放进hashSet集合
如果无法放进,说明这个节点就是相交节点
代码
import java.util.HashSet;
public class Main {
public static void main(String[] args) {
}
public class ListNode {
int val;
ListNode next;
ListNode(int x) {
val = x;
next = null;
}
}
public class Solution {
public ListNode getIntersectionNode(ListNode headA, ListNode headB) {
//遍历A链表,并都放入hashSet中
ListNode cur = headA;
HashSet<ListNode> hashSet = new HashSet<>();
//每一个都添加到一个hasSet中
while (cur != null) {
hashSet.add(cur);
cur = cur.next;
}
//cur指向头部
//遍历b,如果放不进,说明遇到相交节点
cur=headB;
while (cur != null) {
if(!hashSet.add(cur)){
return cur;
}
}
return null;
}
}
}