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

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

मान लीजिए कि हमारे पास दो लिंक की गई सूचियाँ l1 और l2 हैं, हमें l1 से शुरू होने वाली इन दो सूचियों के तत्वों को अंतःस्थापित करके एक लिंक्ड सूची वापस करनी होगी। यदि लिंक की गई सूची में कोई बचे हुए नोड हैं, तो उन्हें सूची में जोड़ा जाना चाहिए।

इसलिए, यदि इनपुट l1 =[5,4,6,3,4,7] l2 =[8,6,9] जैसा है, तो आउटपुट [5,8,4,6,6,9] होगा, 3,4,7]

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

  • उत्तर :=l1

  • जबकि l2 शून्य नहीं है, करें

    • अगर उत्तर शून्य नहीं है, तो

      • अगर अगला उत्तर शून्य नहीं है, तो

        • newnode :=l2 के समान मान वाला एक नया सूची नोड

        • नेक्स्ट ऑफ़ न्यूनोड :=नेक्स्ट ऑफ़ एन्स

        • उत्तर के आगे :=newnode

        • उत्तर:=न्यूनोड के आगे

        • l2 :=l2 के आगे

      • अन्यथा,

      • उत्तर के आगे :=l2

      • लूप से बाहर आएं

    • अन्यथा,


      • वापसी l2


  • वापसी l1

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

उदाहरण

Source Code (Python):
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):
      ans = l1
      while l2:
         if ans:
            if ans.next != None:
               newnode = ListNode(l2.val, None)
               newnode.next = ans.next
               ans.next = newnode
               ans = newnode.next
               l2 = l2.next
            else:
               ans.next = l2
               break
            else:
               return l2
               return l1

ob = Solution()
l1 = make_list([5,4,6,3,4,7])
l2 = make_list([8,6,9])
res = ob.solve(l1,l2)
print_list(res)

इनपुट

[5,4,6,3,4,7],[8,6,9]

आउटपुट

[5, 8, 4, 6, 6, 9, 3, 4, 7, ]

  1. एक सूची से पालिंड्रोमिक तत्वों को हटाने के लिए पायथन कार्यक्रम

    जब सूची से पैलिंड्रोमिक तत्वों को हटाने की आवश्यकता होती है, तो सूची समझ और नहीं ऑपरेटर का उपयोग किया जाता है। उदाहरण नीचे उसी का एक प्रदर्शन है my_list = [56, 78, 12, 32, 4,8, 9, 100, 11] print("The list is : ") print(my_list) my_result = [elem for elem in my_list if int(str(elem)[::-1

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

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

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

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