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

पायथन में सूची के अंत से एनएच नोड निकालें


मान लीजिए कि हमारे पास एक लिंक्ड सूची है। हमें सूची के अंत से Nth नोड को हटाना होगा, फिर उसका सिर वापस करना होगा। तो अगर सूची [1, 2, 3, 4, 5, 6] और n =3 जैसी है, तो लौटाई गई सूची [1, 2, 3, 5, 6] होगी।

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

  • यदि सिर के बाद कोई नोड नहीं है, तो कोई नहीं लौटाएं
  • सामने:=सिर, पीछे:=सिर, काउंटर:=0 और फव्वारा:=झूठा
  • काउंटर करते समय <=n
    • यदि सामने मौजूद नहीं है, तो ध्वज को सत्य के रूप में सेट करें, और लूप से बाहर आएं
    • सामने :=सामने के आगे, और काउंटर को 1 से बढ़ाएं
  • जबकि सामने मौजूद है
    • सामने:=सामने के बगल में
    • पीछे :=आगे पीछे
  • अगर झंडा झूठा है, तो
    • अस्थायी:=पीछे की ओर
    • पीछे के आगे :=अस्थायी के आगे
    • अगले तापमान :=कोई नहीं
  • अन्यथा सिर :=सिर के बगल में
  • रिटर्न हेड

उदाहरण (पायथन)

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

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(object):
   def removeNthFromEnd(self, head, n):
      if not head.next:
         return None
      front=head
      back = head
      counter = 0
      flag = False
      while counter<=n:
         if(not front):
            flag = True
            break
         front = front.next
         counter+=1
      while front:
         front = front.next
         back = back.next
      if not flag:
         temp = back.next
         back.next = temp.next
         temp.next = None
      else:
         head = head.next
      return head
head = make_list([1,2,3,4,5,6])
ob1 = Solution()
print_list(ob1.removeNthFromEnd(head, 3))

इनपुट

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

आउटपुट

[1,2,3,5,6]

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

    जब अन्य सूची से डुप्लिकेट तत्वों के सूचकांक को हटाने की आवश्यकता होती है, तो गणना विशेषता, सूची समझ और एक सरल पुनरावृत्ति का उपयोग किया जाता है। उदाहरण नीचे उसी का एक प्रदर्शन है my_list_1 = [4, 5, 6, 5, 4, 7, 8, 6] my_list_2 = [1, 7, 6, 4, 7, 9, 10, 11] print("The first list is :") prin

  1. पायथन - टुपल्स को एक सूची से हटा दें जिसमें प्रत्येक तत्व कोई नहीं है

    जब किसी सूची से टुपल्स को हटाने की आवश्यकता होती है, जिसमें प्रत्येक तत्व कोई नहीं होता है, तो एक सूची समझ और सभी ऑपरेटर का उपयोग किया जाता है। नीचे उसी का एक प्रदर्शन है - उदाहरण my_tuple = [(None, 12), (None, None), (33, 54), (32, 13), (None, )] print("The tuple is :") print(my_tuple)

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

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