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

पायथन में किसी लिंक की गई सूची से किसी दिए गए लक्ष्य की अंतिम घटना को हटाने का कार्यक्रम

मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है, और एक अन्य मान जिसे लक्ष्य कहा जाता है, हमें दी गई सूची में लक्ष्य की अंतिम घटना को हटाना होगा।

इसलिए, यदि इनपुट [5,4,2,6,5,2,3,2,4,5,4,7], लक्ष्य =5 जैसा है, तो आउटपुट [5, 4, 2, 6] होगा , 5, 2, 3, 2, 4, 4, 7, ]

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

  • सिर:=नोड
  • k:=शून्य, पिछला:=शून्य
  • मिला:=झूठा
  • जबकि नोड शून्य नहीं है, करें
    • यदि नोड का मान लक्ष्य के समान है, तो
      • मिला :=सच
      • पिछला :=k
    • k:=नोड
    • नोड:=नोड के बगल में
  • अगर मिला तो गलत है, तो
    • रिटर्न हेड
  • यदि पिछला शून्य है, तो
    • सिर के आगे वापसी
  • पिछला का nect :=पिछले के अगले का अगला
  • रिटर्न हेड

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

उदाहरण

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, node, target):
      head = node
      k = None
      prev = None
      found = False
      while node:
         if node.val == target:
            found = True
         prev = k
         k = node
         node = node.next
         if found == False:
            return head
         if not prev:
            return head.next
            prev.next = prev.next.next
      return head
ob = Solution()
L = make_list([5,4,2,6,5,2,3,2,4,5,4,7])
target = 5
print_list(ob.solve(L, target))

इनपुट

[5,4,2,6,5,2,3,2,4,5,4,7]

आउटपुट

[5, 4, 2, 6, 5, 2, 3, 2, 4, 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. सूची में x से पहले प्रत्येक y घटना को हटाने के लिए पायथन प्रोग्राम

    जब किसी सूची में x से पहले प्रत्येक y घटना को हटाना आवश्यक होता है, तो सूचकांक पद्धति के साथ एक सूची समझ का उपयोग किया जाता है। उदाहरण नीचे उसी का एक प्रदर्शन है my_list = [4, 45, 75, 46, 66, 77, 48, 99, 10, 40, 5, 8] print("The list is :") print(my_list) a, b = 8, 4 index_a = my_list.

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

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