ধরুন আমাদের একটি এককভাবে লিঙ্ক করা তালিকার প্রধান আছে, আমাদের পরীক্ষা করতে হবে যে নোডের মানগুলি কঠোরভাবে ক্রমবর্ধমান ক্রমে সাজানো হয়েছে কি না৷
সুতরাং, ইনপুট যদি [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