package main type ListNode struct { Val int Next *ListNode } func main() { } func getIntersectionNode(headA, headB *ListNode) *ListNode { Anode, Bnode := headA, headB hash := make(map[*ListNode]struct{}) for Anode != nil { hash[Anode] = struct{}{} Anode = Anode.Next } for Bnode != nil { if _, ok := hash[Bnode]; ok { return Bnode } Bnode = Bnode.Next } return nil }