【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
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容