【Leetcode】160—Intersection of Two Linked Lists

一、题目描述
二、代码实现
# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def getIntersectionNode(self, headA, headB):
        """
        :type head1, head1: ListNode
        :rtype: ListNode
        """
        lenA = 0
        lenB = 0
        pA = headA
        pB = headB
        while pA:
            lenA = lenA + 1
            pA = pA.next
        while pB:
            lenB = lenB + 1
            pB = pB.next
            
        pA = headA
        pB = headB
        
        bias = abs(lenA - lenB)
        if lenA > lenB:
            while bias:
                pA = pA.next
                bias = bias - 1
        else:
            while bias:
                pB = pB.next
                bias = bias - 1
        
        while pA and pB:
            if pA == pB: return pA
            else:
                pA = pA.next
                pB = pB.next
        return None

你可能感兴趣的:(【Leetcode】160—Intersection of Two Linked Lists)