160.E 相交链表
思路
Code
func getIntersectionNode(headA, headB *ListNode) *ListNode {
lenA, lenB := 0, 0
for p := headA; p != nil; p = p.Next {
lenA++
}
for p := headB; p != nil; p = p.Next {
lenB++
}
if lenA > lenB {
for lenA > lenB {
headA = headA.Next
lenA--
}
}
if lenB > lenA {
for lenB > lenA {
headB = headB.Next
lenB--
}
}
for headA != nil {
if headA == headB {
return headA
}
headA = headA.Next
headB = headB.Next
}
return nil
}Last updated