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

पायथन में दो लिंक की गई सूची से लिंक की गई सूची के चौराहे को खोजने का कार्यक्रम

मान लीजिए कि हमारे पास दो क्रमबद्ध लिंक्ड सूचियाँ L1 और L2 हैं, हमें एक नई क्रमबद्ध लिंक्ड सूची बनानी होगी जिसमें इन दो सूचियों का प्रतिच्छेदन हो।

इसलिए, यदि इनपुट L1 =[2, 4, 8] L2 =[3, 4, 8, 10] जैसा है, तो आउटपुट [4, 8, ]

होगा।

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

  • सिर:=0 मान वाला एक नया नोड
  • कर :=सिर
  • जबकि l1 और l2 खाली नहीं हैं, करें
    • यदि l1 का मान
    • l1 :=l1 के आगे
  • अन्यथा जब l2 का मान
  • l2 :=l2 के आगे
  • अन्यथा,
    • cur के आगे :=एक नया नोड जिसका मान l1 के मान के समान हो
    • l1 :=l1 के आगे
    • l2 :=l2 के आगे
    • cur :=cur के आगे
  • सिर के आगे वापसी
  • आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

    उदाहरण

    class ListNode:
       def __init__(self, data, next = None):
          self.val = data
          self.next = next
    def make_list(elements):
       head = ListNode(elements[0])
       for element in elements[1:]:
          ptr = head
          while ptr.next:
             ptr = ptr.next
          ptr.next = ListNode(element)
       return head
    def print_list(head):
       ptr = head
       print('[', end = "")
       while ptr:
          print(ptr.val, end = ", ")
          ptr = ptr.next
       print(']')
    class Solution:
       def solve(self, l1, l2):
          head = cur = ListNode(0)
          while l1 and l2:
             if l1.val < l2.val:
                l1 = l1.next
             elif l2.val < l1.val:
                l2 = l2.next
             else:
                cur.next = ListNode(l1.val)
                l1 = l1.next
                l2 = l2.next
                cur = cur.next
          return head.next
    ob = Solution()
    L1 = make_list([2, 4, 8])
    L2 = make_list([3, 4, 8, 10])
    print_list(ob.solve(L1, L2))

    इनपुट

    [2, 4, 8], [3, 4, 8, 10]

    आउटपुट

    [4, 8, ]

    1. पायथन में लिंक की गई सूची से m नोड्स के बाद n नोड्स को हटाने का कार्यक्रम

      मान लीजिए कि हमें एक लिंक्ड सूची दी गई है जिसमें हेड के रूप में प्रारंभ नोड है, और दो पूर्णांक संख्याएं एम और एन हैं। हमें सूची को पार करना होगा और कुछ नोड्स को हटाना होगा जैसे कि पहले m नोड्स को सूची में रखा जाता है और अगले n नोड्स को पहले m नोड्स को हटा दिए जाने के बाद। हम इसे तब तक करते हैं जब तक

    1. दो स्ट्रिंग्स से असामान्य शब्द खोजने के लिए पायथन प्रोग्राम

      इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो तार दिए गए हैं, हमें दिए गए तार से असामान्य शब्द निकालने होंगे। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # uncommon words def find(A, B):    # count    count = {}   &n

    1. दो या दो से अधिक सूचियों के संघ को खोजने के लिए पायथन कार्यक्रम?

      संघ संचालन का अर्थ है, हमें सूची 1 और सूची 2 से सभी तत्वों को लेना होगा और सभी तत्वों को दूसरी तीसरी सूची में संग्रहित करना होगा। List1::[1,2,3] List2::[4,5,6] List3::[1,2,3,4,5,6] एल्गोरिदम Step 1: Input two lists. Step 2: for union operation we just use + operator. उदाहरण कोड # UNION OPERATIO