给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。
题目数据 保证 整个链式结构中不存在环。
将其中一个链表遍历过的部分存起来,然后遍历另一个链表,如果遇到了存起来的节点,那么就是相交的节点。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17class ListNode:
def __init__(self, x):
self.val = x
self.next = None
class Solution:
def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> Optional[ListNode]:
seen = set()
while headA is not None:
seen.add(headA)
headA = headA.next
while headB is not None:
if headB in seen:
return headB
headB = headB.next
return None