কম্পিউটার

একটি লিঙ্ক করা তালিকার সমস্ত নোড মুছে ফেলার প্রোগ্রাম যার মান পাইথনের মতই


ধরুন আমাদের একটি এককভাবে লিঙ্ক করা তালিকা এবং একটি টার্গেট আছে, আমাদেরকে সব নোড মুছে ফেলার পর একই লিঙ্কযুক্ত ফেরত দিতে হবে যার মান টার্গেটের সমান।

সুতরাং, যদি ইনপুটটি [5,8,2,6,5,2,9,6,2,4] এর মত হয়, তাহলে আউটপুট হবে [5, 8, 6, 5, 9, 6, 4, ]

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • হেড :=নোড
  • যদিও node এবং node.next null না, do
    • যদিও নোডের পরের মান টার্গেটের সমান, ডু
      • নোডের পরের :=নোডের পরের দিকে
    • নোড :=নোডের পাশে
  • যদি হেডের মান লক্ষ্যের সমান হয়, তাহলে
    • মাথার পরের দিকে ফিরুন
  • অন্যথায়,
    • রিটার্ন হেড

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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. পাইথনে লিঙ্ক করা তালিকায় নোড অদলবদল করার জন্য প্রোগ্রাম

  2. পাইথনে লিঙ্ক করা তালিকা থেকে m নোডের পরে n নোড মুছে ফেলার প্রোগ্রাম

  3. পাইথনে বিজোড় জোড় লিঙ্কযুক্ত তালিকা

  4. পাইথনে প্যালিনড্রোম লিঙ্কড তালিকা