Python中两个链接列表的交集
假设我们有两个链接列表A和B,则这些链接列表中的元素很少。我们必须返回交点的参考。输入的交集为Val=8,A=[4,1,8,4,5],B=[5,0,1,8,4,5],skipA=2和skipB=3,这些用于跳过A中有2个元素,B中有3个元素。
为了解决这个问题,我们将遵循以下步骤-
定义一个名为d的图
而headA不为null
d[headA]:=1
headA:=headA的下一个
而headB不为null
返回头B
如果headB在d
headB:=headB的下一个
传回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'