链表之相交链表

看题目:

leetcode 160 简单

总体思路:

通过拼接两个链表来消除长度差

设长-短链表为 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 

猜你喜欢

转载自www.cnblogs.com/xiaowei2092/p/11720489.html