Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

पायथन में दो लिंक्ड सूचियों का प्रतिच्छेदन

मान लीजिए कि हमारे पास दो लिंक्ड सूचियाँ A और B हैं, इन लिंक्ड सूचियों में कुछ तत्व हैं। हमें चौराहे के बिंदुओं का संदर्भ वापस करना होगा। इनपुट चौराहेवैल =8, ए =[4,1,8,4,5], बी =[5,0,1,8,4,5], स्किपए =2 और स्किपबी =3 हैं, इनका उपयोग स्किप करने के लिए किया जाता है A से 2 तत्व और B से 3 तत्व छोड़ें.

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • डी नामक मानचित्र को परिभाषित करें
  • जबकि शीर्षा रिक्त नहीं है
    • d[headA] :=1
    • सिरए:=सिर के आगेए
  • जबकि headB रिक्त नहीं है
    • अगर हेडबी इन डी
      • रिटर्न हेडबी
    • सिर बी :=सिर के आगेबी
  • वापसी शून्य

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

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'

  1. C++ में दो लिंक्ड सूचियों का प्रतिच्छेदन

    एक लिंक्ड सूची एक रैखिक डेटा संरचना है जिसमें प्रत्येक नोड में दो ब्लॉक होते हैं जैसे कि एक ब्लॉक में नोड का मान या डेटा होता है और दूसरे ब्लॉक में अगले फ़ील्ड का पता होता है। आइए मान लें कि हमारे पास एक लिंक्ड सूची है जैसे कि प्रत्येक नोड में एक यादृच्छिक सूचक होता है जो सूची में अन्य नोड्स को इंग

  1. जावा में दो लिंक्ड सूचियों का प्रतिच्छेदन बिंदु खोजें

    एक लिंक्ड सूची एक रैखिक डेटा संरचना है जिसमें प्रत्येक नोड में दो ब्लॉक होते हैं जैसे कि एक ब्लॉक में नोड का मान या डेटा होता है और दूसरे ब्लॉक में अगले फ़ील्ड का पता होता है। आइए मान लें कि हमारे पास एक लिंक्ड सूची है जैसे कि प्रत्येक नोड में एक यादृच्छिक सूचक होता है जो सूची में अन्य नोड्स को इंग

  1. पायथन का उपयोग करके लिंक्ड सूचियों के रूप में दिए गए दो बहुपदों को जोड़ने का कार्यक्रम

    मान लीजिए, हमें दो बहुपद दिए गए हैं और हमें दो बहुपदों का योग ज्ञात करना है। बहुपदों को लिंक्ड सूचियों के रूप में दर्शाया जाना चाहिए; बहुपद की शर्तों को एक लिंक्ड सूची नोड के रूप में दर्शाया जाएगा। प्रत्येक लिंक्ड लिस्ट नोड में अगले लिंक्ड लिस्ट नोड के लिए गुणांक मान, पावर वैल्यू और पॉइंटर होगा। हमे