跳转至

LC160 - 相交链表

IntersectionOfTwoLinkedLists.go
package LinkedList

type ListNode struct {
    Val  int
    Next *ListNode
}

func getIntersectionNode(headA, headB *ListNode) *ListNode {
    curA, curB := headA, headB
    lenA, lenB := 0, 0
    for ; curA != nil; curA = curA.Next {
        lenA++
    }
    for ; curB != nil; curB = curB.Next {
        lenB++
    }
    curA, curB = headA, headB
    if lenA > lenB {
        for i := 0; i < lenA-lenB; i++ {
            curA = curA.Next
        }
    } else {
        for i := 0; i < lenB-lenA; i++ {
            curB = curB.Next
        }
    }
    for curA != curB {
        curA = curA.Next
        curB = curB.Next
    }
    return curA
}