func getIntersectionNode(headA, headB *ListNode) *ListNode {
if headA == nil || headB == nil {
return nil
}
pA, pB := headA, headB
for pA != pB {
if pA == nil {
pA = headB
} else {
pA = pA.Next
}
if pB == nil {
pB = headA
} else {
pB = pB.Next
}
}
return pA
}
func main() {
common := &ListNode{6, &ListNode{7, nil}}
headA := &ListNode{1, &ListNode{2, &ListNode{3, common}}}
headB := &ListNode{4, &ListNode{5, common}}
intersection := getIntersectionNode(headA, headB)
if intersection != nil {
fmt.Printf("相交节点值: %d\n", intersection.Val)
} else {
fmt.Println("没有相交节点")
}
}