Python 中两个链表的交集
pythonserver side programmingprogramming更新于 2025/10/31 21:32:17
假设我们有两个链表 A 和 B,这两个链表中的元素很少。我们需要返回交点的引用。输入为intersectionVal = 8,A = [4,1,8,4,5],B = [5,0,1,8,4,5],skipA = 2和skipB = 3,它们用于从A中跳过2个元素并从B中跳过3个元素。
为了解决这个问题,我们将遵循以下步骤−
- 定义一个名为d的映射
- 当headA不为空时
- d[headA] := 1
- headA := next of headA
- 当headB不为空时
- 如果headB在d中
- 返回headB
- headB := next of headB
- 如果headB在d中
- 返回 null
示例
让我们看看下面的实现以便更好地理解 −
class ListNode:
def __init__(self, data, next = None):
self.data = data
self.next = next
class Solution(object):
def getIntersectionNode(self, headA, headB):
"""
:type head1, head1: ListNode
:rtype: ListNode
"""
dict = {}
while headA:
dict[headA]=1
headA = headA.next
while headB:
if headB in dict:
return headB
headB = headB.next
return None
headA = ListNode(4)
headB = ListNode(5)
Intersect = ListNode(8, ListNode(4, ListNode(5)))
headA.next = ListNode(1, Intersect)
headB.next = ListNode(0, ListNode(1, Intersect))
ob1 = Solution()
op = ob1.getIntersectionNode(headA, headB)
print("Intersection:",op.data)
输入
headA = ListNode(4) headB = ListNode(5) Intersect = ListNode(8, ListNode(4, ListNode(5))) headA.next = ListNode(1, Intersect) headB.next = ListNode(0, ListNode(1, Intersect))
输出
Intersected at '8'
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

