Giả sử chúng ta có phần đầu của một danh sách được liên kết đơn lẻ, chúng ta phải kiểm tra xem giá trị của các nút có được sắp xếp theo thứ tự tăng dần hay không.
Vì vậy, nếu đầu vào là [2,61,105,157], thì đầu ra sẽ là True.
Để giải quyết vấn đề này, chúng ta sẽ làm theo các bước sau -
-
Định nghĩa một hàm giải quyết (). Điều này sẽ dẫn đầu
-
nếu head.next là null thì
-
trả về True
-
-
nếu head.val> =head.next.val, thì
-
trả về Sai
-
-
trả về giải quyết (head.next)
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
Ví dụ
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))
Đầu vào
[2,61,105,157]
Đầu ra
True