2025-06-27
后端技术
00
go
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 // 相交节点 or nil } // 测试代码 func main() { // 构造链表A: 1 -> 2 -> 3 \ // 6 -> 7 // 4 -> 5 / // 链表B: 4 -> 5 / 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("没有相交节点") } }

本文作者:曹子昂

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!