看题目:
总体思路:
通过拼接两个链表来消除长度差
设长-短链表为 C,短-长链表为 D (分别代表长链表在前和短链表在前的拼接链表),则当 C 走到长短链表交接处时,D 走在长链表中,且与长链表头距离为 长度差;
以下图片帮助理解:当 ha == hb 时跳出,返回即可
上代码:
1 class Solution: 2 def get_intersection_node(self, headA, headB): 3 ha, hb = headA, headB 4 while ha != hb: 5 ha = ha.next if ha else headB 6 hb = hb.next if hb else headA 7 return ha