ধরুন আমাদের দুটি লিঙ্কযুক্ত তালিকা 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টি উপাদান এড়িয়ে যান।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- ডি নামে একটি মানচিত্র সংজ্ঞায়িত করুন
- যদিও headA শূন্য নয়
- d[headA] :=1
- headA :=headA এর পরবর্তী
- যদিও headB শূন্য নয়
- যদি d
- এ headB হয়
- রিটার্ন হেডবি
- headB :=headB এর পাশে
- যদি d
- শূন্য রিটার্ন করুন
উদাহরণ
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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'