class Solution:
def getIntersectionNode(self, headA, headB):
if headA is None or headB is None:
return None
lenA = self.getLength(headA)
lenB = self.getLength(headB)
print("lenA is {}, lenB is {}".format(lenA, lenB))
it = ListNode(0)
if lenA > lenB:
it = self.movePointer(headA, lenA - lenB)
itb = headB
print("it.val is {}".format(it.val))
while it:
if it.val != itb.val:
it = it.next
itb = itb.next
else:
return it
if it is None:
return None
else:
it = self.movePointer(headB, lenB - lenA)
ita = headA
while it:
if it.val != ita.val:
it = it.next
ita = ita.next
else:
return it
if it is None:
return None
def movePointer(self, head, count):
it = head
while count > 0:
if it:
it = it.next
count -= 1
return it
def getLength(self, head):
count = 1
it = head
if head is None:
return 0
while it:
count += 1
it = it.next
return count
相交链表
最新推荐文章于 2025-04-30 18:29:00 发布