leetcode-python-相交链表

都有相同的tail。则先将列表变为长短一致。

然后逐个前进。找到相同节点。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution:
    def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:
   
        lengthA = 0
        lengthB = 0
        pA = headA
        pB = headB
        while pA:
            lengthA += 1
            pA = pA.next
        while pB:
            lengthB += 1
            pB = pB.next
        
        while lengthA - lengthB >0:
            headA = headA.next
            lengthA -= 1
       
        while lengthB - lengthA >0:
            headB = headB.next
            lengthB -= 1
        
        while lengthA:
            if headA == headB:
                return headA
            headA = headA.next
            headB = headB.next
            lengthA -= 1
        return None

 

posted @ 2021-06-16 15:13  泊鸽  阅读(40)  评论(0)    收藏  举报