
class ListNode: |
def __init__(self, val=0, next=None): |
self.val = val |
self.next = next |
def getIntersectionNode(headA, headB): |
if headA is None or headB is None: |
return None |
currA = headA |
currB = headB |
while currA != currB: |
currA = headB if currA is None else currA.next |
currB = headA if currB is None else currB.next |
return currA |
# Example usage |
# Create the first linked list: 1 -> 2 -> 3 -> 4 -> 5 |
headA = ListNode(1) |
headA.next = ListNode(2) |
headA.next.next = ListNode(3) |
headA.next.next.next = ListNode(4) |
headA.next.next.next.next = ListNode(5) |
# Create the second linked list: 6 -> 7 -> 8 -> 4 -> 5 |
headB = ListNode(6) |
headB.next = ListNode(7) |
headB.next.next = ListNode(8) |
headB.next.next.next = headA.next.next.next # Intersection point |
headB.next.next.next.next = headA.next.next.next.next |
# Find the intersection point |
intersection = getIntersectionNode(headA, headB) |
if intersection: |
print("Intersection point value:", intersection.val) |
else: |
print("No intersection point found.") |



