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

एक लिंक्ड सूची के सभी नोड्स को हटाने का कार्यक्रम जिसका मूल्य पायथन के समान है

मान लीजिए कि हमारे पास एक एकल लिंक की गई सूची है, और एक लक्ष्य है, हमें उन सभी नोड्स को हटाने के बाद उसी लिंक को वापस करना होगा, जिनका मूल्य लक्ष्य के समान है।

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

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

  • सिर:=नोड
  • जबकि नोड और नोड.नेक्स्ट शून्य नहीं हैं, करें
    • जबकि अगले नोड का मान लक्ष्य के समान है, करें
      • नोड के अगले :=नोड के अगले के आगे
    • नोड:=नोड के बगल में
  • यदि शीर्ष का मान लक्ष्य के समान है, तो
    • सिर के आगे वापसी
  • अन्यथा,
    • रिटर्न हेड

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

उदाहरण

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
      while (node and node.next):
         while node.next.val == target:
            node.next = node.next.next
            node = node.next
         if head.val == target:
            return head.next
         else:
      return head
ob = Solution()
head = make_list([5,8,2,6,5,2,9,6,2,4])
ob.solve(head, 2)
print_list(head)

इनपुट

[5,8,2,6,5,2,9,6,2,4]

आउटपुट

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

  1. पायथन में लिंक की गई सूची में नोड्स को स्वैप करने का कार्यक्रम

    मान लीजिए कि हमारे पास एक सूची L और दूसरा मान k है। हमें शुरू से kth नोड और अंत से kth नोड को स्वैप करना होगा और अंत में अंतिम सूची वापस करनी होगी। इसलिए, यदि इनपुट L =[1,5,6,7,1,6,3,9,12] k =3 जैसा है, तो आउटपुट [1,5,3,7,1,6, 6,9,12], शुरू से तीसरा नोड 6 है और अंत से 3 है, इसलिए उनकी अदला-बदली की

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

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

  1. पायथन में पालिंड्रोम लिंक्ड लिस्ट

    मान लीजिए कि हमारे पास एक लिंक्ड सूची है। हमें यह जांचना होगा कि सूची के तत्व एपेलिंड्रोम बना रहे हैं या नहीं। तो अगर सूची तत्व [1,2,3,2,1] जैसा है, तो यह एक पैलिंड्रोम है। इसे हल करने के लिए, हम इन चरणों का पालन करेंगे - तेज:=सिर, धीमा:=सिर, रेव:=कोई नहीं और झंडा:=1 यदि सिर खाली है, तो सही ल