链表之相交链表

看题目:

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 

 

posted @ 2019-10-22 16:18  一名石匠  阅读(154)  评论(0编辑  收藏  举报