मान लीजिए हमारे पास एक सिंगली लिंक्ड लिस्ट का हेड है, हमें जांचना है कि क्या नोड्स के मान सख्ती से आरोही क्रम में सॉर्टेड हैं या नहीं।
यदि इनपुट [2,61,105,157] जैसा है, तो आउटपुट True होगा।
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- solve() नामक एक फंक्शन परिभाषित करें। यह head लेगा:
- यदि head.next null है, तो True लौटाएं
- यदि head.val >= head.next.val, तो False लौटाएं
- solve(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