কম্পিউটার

পাইথনে একটি কঠোরভাবে ক্রমবর্ধমান লিঙ্কযুক্ত তালিকা


ধরুন আমাদের একটি এককভাবে লিঙ্ক করা তালিকার প্রধান আছে, আমাদের পরীক্ষা করতে হবে যে নোডের মানগুলি কঠোরভাবে ক্রমবর্ধমান ক্রমে সাজানো হয়েছে কি না৷

সুতরাং, ইনপুট যদি [2,61,105,157] এর মত হয়, তাহলে আউটপুট হবে True।

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

  • একটি ফাংশন সংজ্ঞায়িত করুন solve()। এটা মাথা নেবে

  • যদি head.next শূন্য হয়, তাহলে

    • রিটার্ন ট্রু

  • যদি head.val>=head.next.val, তাহলে

    • রিটার্ন ফলস

  • রিটার্ন সল্ভ(head.next)

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

উদাহরণ

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
class Solution:
   def solve(self, head):
      if head.next == None:
         return True
      if head.val >= head.next.val:
         return False
      return self.solve(head.next)
ob = Solution()
head = make_list([2,61,105,157])
print(ob.solve(head))

ইনপুট

[2,61,105,157]

আউটপুট

True

  1. C++ এ পুনরাবৃত্ত সন্নিবেশ এবং ট্রাভার্সাল লিঙ্কযুক্ত তালিকা

  2. লিংকড লিস্ট C++ এ লাফ দেয়

  3. পাইথনে লিঙ্ক করা তালিকায় নোড অদলবদল করার জন্য প্রোগ্রাম

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