链表 160.找出两个链表的交点

160. Intersection of Two Linked Lists (Easy)---python

  • 相遇问题(是指地址相同而不是值),重点是要同时出发
  • 思路一:A和B分别走完自己的路走别人的路,不相遇返回null,相遇了就在一起。
  • 思路二:第一步:A和B走自己的路,看各自的路有多长。
    第二步:路程长的那个人先把长出来的路走完,确保两人剩下的路程一样远,然后一起开始走。
    然后:相遇或者各走各的。
  • 下面用的是思路一:
class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        if not headA or not headB:
           return Null

        else:
            pa, pb = headA, headB
            while pa is not pb:
                pa = headB if pa == None else pa.next # if  else 为三目表达式
                pb = headA if pb == None else pb.next
            return pa
上一篇:160. 相交链表 Java版


下一篇:Walkthrough-Step16 Dialogs and Fragments