Intersection of Two Linked Lists
A: a1 → a2
↘
c1 → c2 → c3
↗
B: b1 → b2 → b3Last updated
A: a1 → a2
↘
c1 → c2 → c3
↗
B: b1 → b2 → b3Last updated
class Solution(object):
def getIntersectionNode(self, headA, headB):
"""
:type head1, head1: ListNode
:rtype: ListNode
"""
setA = set()
while headA:
setA.add(headA)
headA = headA.next
while headB:
if headB in setA:
return headB
headB= headB.next# 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 = self.getListLen(headA)
lenB = self.getListLen(headB)
if lenA > lenB:
for i in xrange(lenA-lenB):
headA = headA.next
else:
for i in xrange(lenB-lenA):
headB= headB.next
while headA and headB:
if headA == headB:
return headA
else:
headA = headA.next
headB= headB.next
def getListLen(self, head):
size = 0
p = head
while p:
size += 1
p = p.next
return size